public RLTile( TileRegistry reg, Color32 color, char ch, bool isSolid = false ) { color_ = color; ch_ = ch; isSolid_ = isSolid; reg.Add(this); }
public static bool Prefix(ChunkWorld __instance, int[] msg, ref GameObject[,] ___gridSpecialObj) { if (TileRegistry.GetSingleton().HasEntry(msg[2])) { TileInfo tile = TileRegistry.GetSingleton().GetEntry(msg[2]); int num = msg[0]; int num2 = msg[1]; int num3 = (num + 62) / 4; int num4 = (num2 + 62) / 4; int num5 = msg[2]; __instance.gridSpecial[num3, num4] = num5; if (tile.Type != TileType.INTERACTIVE) { ___gridSpecialObj[num3, num4] = (GameObject)UnityEngine.Object.Instantiate(Resources.Load("prop/" + num5), new Vector3(num, num2, 0.9f), Quaternion.identity); } else { ___gridSpecialObj[num3, num4] = (GameObject)UnityEngine.Object.Instantiate(Resources.Load("npc/npc" + num5), new Vector3(num, num2, 0.9f), Quaternion.identity); } ___gridSpecialObj[num3, num4].transform.parent = __instance.transform; MultiplayerSupport.Invoke(__instance, new object[] { }); return(false); } return(true); }
public static IEnumerable <CodeInstruction> Transpiler(IEnumerable <CodeInstruction> instructions) { CodeInstruction[] codes = instructions.ToArray(); List <CodeInstruction> newCodes = new List <CodeInstruction>(); for (int i = 0; i < 11; i++) { newCodes.Add(codes[i]); } for (int i = 11; i < codes.Length; i++) { newCodes.Add(codes[i]); if (codes[i - 11] != null && codes[i - 11].opcode == OpCodes.Ldloc_S && codes[i - 10] != null && codes[i - 10].opcode == OpCodes.Ldc_I4_S && codes[i - 9] != null && codes[i - 9].opcode == OpCodes.Bge && codes[i - 8] != null && codes[i - 8].opcode == OpCodes.Ldloc_S && codes[i - 7] != null && codes[i - 7].opcode == OpCodes.Ldc_I4_0 && codes[i - 6] != null && codes[i - 6].opcode == OpCodes.Blt && codes[i - 5] != null && codes[i - 5].opcode == OpCodes.Ldloc_S && codes[i - 4] != null && codes[i - 4].opcode == OpCodes.Ldc_I4_S && codes[i - 3] != null && codes[i - 3].opcode == OpCodes.Bge && codes[i - 2] != null && codes[i - 2].opcode == OpCodes.Ldloc_S && codes[i - 1] != null && codes[i - 1].opcode == OpCodes.Ldc_I4_0 && codes[i] != null && codes[i].opcode == OpCodes.Blt) { if (codes.Length > i + 1 && codes[i + 1].opcode == OpCodes.Ldsfld) { newCodes.Add(new CodeInstruction(OpCodes.Ldsfld, codes[i + 1].operand)); newCodes.Add(new CodeInstruction(OpCodes.Ldc_I4, TileRegistry.GetSingleton().GetIDStart())); newCodes.Add(new CodeInstruction(OpCodes.Bge, codes[i].operand)); } } } return(newCodes); }
private void Awake() { this.registeredStats = new List <RegisteredStat>(); // General Stats: this.leversFlipped = this.registerStat(new StatisticInt("Levers Flipped", "leversFlipped"), EnumStatisticCategory.GENERAL); this.minecartsPlaced = this.registerStat(new StatisticInt("Minecarts Placed", "minecartsPlaced"), EnumStatisticCategory.GENERAL); this.minecartsDestroyed = this.registerStat(new StatisticInt("Minecarts Destroyed", "minecartsDestroyed"), EnumStatisticCategory.GENERAL); // Worker Stats: this.workersHired = this.registerStat(new StatisticInt("Workers Hired", "workersHired"), EnumStatisticCategory.WORKERS); this.workersFired = this.registerStat(new StatisticInt("Workers Fired", "workersFired"), EnumStatisticCategory.WORKERS); // Tile Stats: TileRegistry reg = Main.instance.tileRegistry; for (int i = 0; i < reg.getRegistrySize(); i++) { CellData cell = reg.getElement(i); if (cell != null) { this.registerStat(new StatisticInt(cell.displayName + " built", cell.name + DOT_TIMES_BUILT), EnumStatisticCategory.TILES); if (cell is CellDataMineable) { this.registerStat(new StatisticInt(cell.displayName + " mined", cell.name + DOT_TIMES_MINED), EnumStatisticCategory.TILES); } if (cell.isDestroyable) { this.registerStat(new StatisticInt(cell.displayName + " destroyed", cell.name + DOT_TIMES_DESTROYED), EnumStatisticCategory.TILES); } } } }
/// <summary> /// Adds a sprite to a tilemap at a position, and puts the sprite in a list to animate if it's animated /// </summary> /// <param name="tilemap"></param> /// <param name="pos"></param> /// <param name="sprites"></param> /// <param name="animated"></param> private void AddSprite(Vector2Int pos, String[] sprites, bool animated, bool detail) { TileRegistry.GetInstance().SetTile(pos, sprites[0], detail); if (animated) { animatedSprites.Add(new AnimatedSprite(pos, sprites, detail)); } }
public static TileRegistry GetInstance() { if (instance == null) { instance = new TileRegistry(); } return(instance); }
public void DoProgress() { chopProgress++; if (chopProgress == treeToughness) { Map.GetInstance().SetDetail(treeTile, null); TileRegistry.GetInstance().RemoveTree(treeTile); isDone = true; } }
public Walls(TileRegistry reg, Color32 defaultColor) { plain_ = new RLTile(reg, defaultColor, '█', true); doubleVert_ = new RLTile(reg, defaultColor, '║', true); doubleHor_ = new RLTile(reg, defaultColor, '═', true); doubleTLCorner_ = new RLTile(reg, defaultColor, '╔', true); doubleBLCorner_ = new RLTile(reg, defaultColor, '╚', true); doubleTRCorner_ = new RLTile(reg, defaultColor, '╗', true); doubleBRCorner_ = new RLTile(reg, defaultColor, '╝', true); }
public static bool Prefix(PlayerTrigger __instance, string name, ref int __result) { int id = TileRegistry.GetIDByPropName(name.Replace("(Clone)", "")); if (id >= 0) { __result = id; return(false); } return(true); }
public void TestSetup() { _eventsFired = EventFlags.None; _registry = new TileRegistry(_service.GraphicsDevice); _pool = new TilePool("pool", _registry, 16, 16); Texture2D tex1 = new Texture2D(_service.GraphicsDevice, 16, 16); Texture2D tex2 = new Texture2D(_service.GraphicsDevice, 16, 16); _tile1 = _pool.GetTile(_pool.AddTile(tex1)); _tile2 = _pool.GetTile(_pool.AddTile(tex2)); }
public static bool Prefix(ChunkWorld __instance, ref int[] gg) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, gg)); return(false); } for (int i = 0; i < gg.Length; i++) { GadgetNetwork.ConvertIDToLocal(TileRegistry.GetSingleton(), ref gg[i]); } return(true); }
public static bool Prefix(PlayerScript __instance, int id, ref IEnumerator __result) { if (TileRegistry.GetSingleton().HasEntry(id)) { TileInfo tile = TileRegistry.GetSingleton().GetEntry(id); IEnumerable <IEnumerator> interactions = tile.Interact(); if (interactions != null) { __result = InteractAll(__instance, interactions); return(false); } } return(true); }
public static bool Prefix(SpawnerScript __instance, ref int[] s) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, s)); return(false); } GadgetNetwork.ConvertIDToLocal(null /* WorldRegistry */, ref s[0]); for (int i = 1; i < s.Length; i++) { GadgetNetwork.ConvertIDToLocal(TileRegistry.GetSingleton(), ref s[i]); } return(true); }
public static bool Prefix(PlayerTrigger __instance, int id, ref IEnumerator __result) { if (TileRegistry.GetSingleton().HasEntry(id)) { TileInfo tile = TileRegistry.GetSingleton().GetEntry(id); IEnumerator result = tile.Interact(); if (result != null) { __result = result; return(false); } } return(true); }
public static void Register(TileRegistry tileRegistry) { tileGrass = new Tile(1).SetTextureName("tiles/grass"); tileDirt = new Tile(2).SetTextureName("tiles/dirt"); tileFlowers = new Tile(3).SetTextureName("tiles/flowers"); tileWater = new TileWater(4); tileLargeTest = new TileLargeTest(5); tileNuclearReactor = new TileNuclearPlant(6); tileRegistry.Register(tileGrass); tileRegistry.Register(tileDirt); tileRegistry.Register(tileFlowers); tileRegistry.Register(tileWater); tileRegistry.Register(tileLargeTest); tileRegistry.Register(tileNuclearReactor); }
/// <summary> Creates tile. </summary> /// <param name="relativeNullPoint">Relative null point.</param> /// <param name="mapCenter">Center of map.</param> /// <param name="renderMode">Render mode.</param> /// <param name="canvas">Map canvas.</param> /// <param name="width">Tile width in meters.</param> /// <param name="height">Tile height in meters.</param> public Tile(GeoCoordinate relativeNullPoint, Vector2d mapCenter, RenderMode renderMode, Canvas canvas, double width, double height) { RelativeNullPoint = relativeNullPoint; MapCenter = mapCenter; RenderMode = renderMode; Canvas = canvas; var geoCenter = GeoProjection.ToGeoCoordinate(relativeNullPoint, mapCenter); BoundingBox = BoundingBox.Create(geoCenter, width, height); Rectangle = new Rectangle2d(MapCenter.X - width / 2, MapCenter.Y - height / 2, width, height); Registry = new TileRegistry(renderMode); }
public static bool Prefix(ChunkWorld __instance, ref GameObject[,] ___gridSpecialObj) { for (int i = 0; i < 64; i++) { for (int j = 0; j < 64; j++) { if (__instance.gridSpecial[i, j] > 0) { if (___gridSpecialObj[i, j] == null) { if (TileRegistry.GetSingleton().HasEntry(__instance.gridSpecial[i, j])) { TileInfo tile = TileRegistry.GetSingleton().GetEntry(__instance.gridSpecial[i, j]); if (tile.Type == TileType.INTERACTIVE) { ___gridSpecialObj[i, j] = (GameObject)UnityEngine.Object.Instantiate(Resources.Load("npc/npc" + __instance.gridSpecial[i, j]), new Vector3((float)(i * 4 - 62), (float)(j * 4 - 62), 0.9f), Quaternion.identity); } else { ___gridSpecialObj[i, j] = (GameObject)UnityEngine.Object.Instantiate(Resources.Load("prop/" + __instance.gridSpecial[i, j]), new Vector3((float)(i * 4 - 62), (float)(j * 4 - 62), 0.9f), Quaternion.identity); } } else { if (__instance.gridSpecial[i, j] < 2400) { ___gridSpecialObj[i, j] = (GameObject)UnityEngine.Object.Instantiate(Resources.Load("npc/npc" + __instance.gridSpecial[i, j]), new Vector3((float)(i * 4 - 62), (float)(j * 4 - 62), 0.9f), Quaternion.identity); } else { ___gridSpecialObj[i, j] = (GameObject)UnityEngine.Object.Instantiate(Resources.Load("prop/" + __instance.gridSpecial[i, j]), new Vector3((float)(i * 4 - 62), (float)(j * 4 - 62), 0.9f), Quaternion.identity); } if (__instance.gridSpecial[i, j] != 2106 && __instance.gridSpecial[i, j] != 2107 && __instance.gridSpecial[i, j] != 2105) { ___gridSpecialObj[i, j].transform.parent = __instance.transform; } } } } else if (___gridSpecialObj[i, j]) { UnityEngine.Object.Destroy(___gridSpecialObj[i, j]); } } } return(false); }
void OnEnable() { if (!(worldBehaviour == this || worldBehaviour == null)) { Debug.LogError("'worldBehaviour' assigned to different WorldBehaviour, reassigning..."); } worldBehaviour = this; TileRegistry.Initialize(); foreach (Transform child in transform) { if (!Application.isPlaying) { DestroyImmediate(child.gameObject); } else { Destroy(child.gameObject); } } World = new World(2); if (layerObjects == null) { layerObjects = new GameObject[World.Layers.Length]; layerBehaviours = new LayerBehaviour[World.Layers.Length]; for (int i = 0; i < World.Layers.Length; i++) { World.Layers[i] = new Layer(new Vector2i(100, 100)); //Test code layerObjects[i] = new GameObject("Layer " + i, typeof(LayerBehaviour), typeof(MeshFilter), typeof(MeshRenderer)); layerObjects[i].transform.SetParent(transform); layerBehaviours[i] = layerObjects[i].GetComponent <LayerBehaviour>(); layerBehaviours[i].World = World; layerBehaviours[i].WorldBehaviour = this; layerBehaviours[i].Index = i; layerObjects[i].GetComponent <MeshRenderer>().material = material; } } if (autoloadWorld) { World.Load(worldPath); } }
public void TestSetup() { _eventsFired = EventFlags.None; _registry = new TileRegistry(_service.GraphicsDevice); _pool = new TilePool("pool", _registry, 16, 16); _pool.Modified += (s, e) => { _eventsFired |= EventFlags.Modified; }; _pool.NameChanged += (s, e) => { _eventsFired |= EventFlags.NameChanged; }; _pool.TileAdded += (s, e) => { _eventsFired |= EventFlags.TileAdded; }; _pool.TileRemoved += (s, e) => { _eventsFired |= EventFlags.TileRemoved; }; _pool.TileModified += (s, e) => { _eventsFired |= EventFlags.TileModified; }; _pool.CustomProperties.PropertyAdded += (s, e) => { _eventsFired |= EventFlags.PropertyAdded; }; _pool.CustomProperties.PropertyRemoved += (s, e) => { _eventsFired |= EventFlags.PropertyRemoved; }; _pool.CustomProperties.PropertyModified += (s, e) => { _eventsFired |= EventFlags.PropertyModified; }; _pool.CustomProperties.PropertyRenamed += (s, e) => { _eventsFired |= EventFlags.PropertyRenamed; }; }
private static void InitializeRegistries() { Log("Initializing Registries"); GameRegistry.RegisterRegistry(ItemRegistry.GetSingleton()); GameRegistry.RegisterRegistry(ChipRegistry.GetSingleton()); GameRegistry.RegisterRegistry(TileRegistry.GetSingleton()); GameRegistry.RegisterRegistry(EntityRegistry.GetSingleton()); foreach (GadgetModInfo mod in GadgetMods.ListAllModInfos()) { if (mod.Mod.Enabled) { foreach (Registry registry in mod.Mod.CreateRegistries()) { GameRegistry.RegisterRegistry(registry); } } } Log("Finished Initializing Registries"); }
/// <summary> /// Update an animated sprite to the next sprite in sequence /// </summary> /// <param name="sprite"></param> private void UpdateSprite(AnimatedSprite sprite) { if (sprite.playingForward) { sprite.currSpriteIdx++; if (sprite.currSpriteIdx == 3) { sprite.playingForward = false; } } else { sprite.currSpriteIdx--; if (sprite.currSpriteIdx == 0) { sprite.playingForward = true; } } TileRegistry.GetInstance().SetTile(sprite.pos, sprite.sprites[sprite.currSpriteIdx], sprite.detail); }
private void CreateDetails() { for (int x = 0; x < tiles.GetLength(0); x++) { for (int y = 0; y < tiles.GetLength(1); y++) { Vector2Int pos = new Vector2Int(x, y); IList <Vector2Int> immediateTiles = new List <Vector2Int>(Utils.GetAdjCoordsArr(pos)) { pos }; if (SurroundedBy(immediateTiles, IsSandTile)) { if (Utils.r.Next(100) < 10) { SetDetail(pos, Detail.Palm, false); TileRegistry.GetInstance().SetPalmTile(pos); } else if (Utils.r.Next(100) < 1) { SetDetail(pos, Detail.DessertRock, false); TileRegistry.GetInstance().SetRockBeachTile(pos); } } else if (SurroundedBy(immediateTiles, IsGrassTile) || SurroundedBy(immediateTiles, IsCliffTile)) { if (Utils.r.Next(100) < 10) { SetDetail(pos, Detail.Tree, false); TileRegistry.GetInstance().SetTreeTile(pos); } else if (Utils.r.Next(100) < 1) { SetDetail(pos, Detail.Rock, false); TileRegistry.GetInstance().SetRockTile(pos); } } } } }
protected override void Initialize() { IsMouseVisible = true; // Tile registry. tileRegistry = new TileRegistry(); Tile.Register(tileRegistry); // register game tiles // Generator generator = new Generator(); Generator.RegisterGenerators(generator); // register game generators // View registry. viewRegistry = new ViewRegistry(); ViewRegistry.RegisterViews(viewRegistry); // register game views // Load blank city city = new City(); city.world = generator.Generate(city.world, 50, 50, new Random()); base.Initialize(); }
public void DoProgress() { Map.GetInstance().SetItem(pos, item); TileRegistry.GetInstance().SetItem(pos, item); isDone = true; }
public static bool Prefix(NetworkView __instance, string name, RPCMode mode, ref object[] args) { if (Assembly.GetCallingAssembly().Equals(typeof(GameScript).Assembly)) { switch (name) { case "Set": if (args.Length == 3) { if (args[0] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(null /* WorldRegistry */, ref args[0]); } } else if (args.Length == 1) { if (args[0] is int[] && (args[0] as int[]).Length == 2) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[0]); } else if (args[0] is Package2) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton() /* ProjectileRegistry */, ref (args[0] as Package2).id); } } break; case "UA": if (args.Length == 3) { if (args[0] is int[] && (args[0] as int[]).Length == 8) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[0]); GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[1]); GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[2]); GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[3]); GadgetNetwork.ConvertIDToHost(null /* RaceRegistry */, ref (args[0] as int[])[4]); GadgetNetwork.ConvertIDToHost(null /* UniformRegistry */, ref (args[0] as int[])[6]); GadgetNetwork.ConvertIDToHost(null /* AugmentRegistry */, ref (args[0] as int[])[7]); } } else if (args.Length == 1) { if (args[0] is int[] && (args[0] as int[]).Length == 3) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[0]); GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[1]); GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[2]); } } break; case "ShootProjectile": if (args.Length == 3) { if (args[0] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton() /* ProjectileRegistry */, ref args[0]); } } break; case "CreateWorld": if (args.Length == 1) { if (args[0] is int[] && (args[0] as int[]).Length > 1) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(null /* WorldRegistry */, ref (args[0] as int[])[0]); for (int i = 1; i < (args[0] as int[]).Length; i++) { GadgetNetwork.ConvertIDToHost(TileRegistry.GetSingleton(), ref (args[0] as int[])[i]); } } } break; case "CreateTown": if (args.Length == 1) { if (args[0] is int[] && (args[0] as int[]).Length == 2) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(null /* WorldRegistry */, ref (args[0] as int[])[0]); } } break; case "SpawnProjectile": if (args.Length == 4) { if (args[1] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton() /* ProjectileRegistry */, ref args[1]); } } break; case "SetNetworked": if (args.Length == 3) { if (args[1] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton() /* ProjectileRegistry */, ref args[1]); } } break; case "SetName": if (args.Length == 1) { if (args[0] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(null /* WorldRegistry */, ref args[0]); } } break; case "Staff": if (args.Length == 3) { if (args[0] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton() /* ProjectileRegistry */, ref args[0]); } } break; case "ShootSpecial": if (args.Length == 3) { if (args[0] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton() /* ProjectileRegistry */, ref args[0]); } } break; case "ShootProjectile2": if (args.Length == 4) { if (args[0] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton() /* ProjectileRegistry */, ref args[0]); } } break; case "NetworkedProjectile": if (args.Length == 4) { if (args[0] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton() /* ProjectileRegistry */, ref args[0]); } } break; case "Init": if (args.Length == 1) { if (args[0] is int[] && (args[0] as int[]).Length >= 11) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[0]); GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[5]); GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[6]); GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[7]); } } break; case "Chip": if (args.Length == 1) { if (args[0] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ChipRegistry.GetSingleton(), ref args[0]); } } break; case "SpawnItem": if (args.Length == 2) { if (args[0] is int[] && (args[0] as int[]).Length >= 11) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[0]); GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[5]); GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[6]); GadgetNetwork.ConvertIDToHost(ItemRegistry.GetSingleton(), ref (args[0] as int[])[7]); } } break; case "ChangePortal": if (args.Length == 2) { if (args[0] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(null /* WorldRegistry */, ref args[0]); } } break; case "ChangePortal2": if (args.Length == 2) { if (args[0] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(null /* WorldRegistry */, ref args[0]); } } break; case "RefreshWall": if (args.Length == 1) { if (args[0] is int[]) { for (int i = 0; i < (args[0] as int[]).Length; i++) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(TileRegistry.GetSingleton(), ref (args[0] as int[])[i]); } } } break; case "RefreshShip": if (args.Length == 2) { if (args[0] is int[] && args[1] is int[]) { for (int i = 0; i < (args[0] as int[]).Length; i++) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(TileRegistry.GetSingleton(), ref (args[0] as int[])[i]); } for (int i = 0; i < (args[1] as int[]).Length; i++) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(TileRegistry.GetSingleton(), ref (args[1] as int[])[i]); } } } break; case "SetMaterial": if (args.Length == 1) { if (args[0] is int) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args)); return(false); } GadgetNetwork.ConvertIDToHost(null /* WorldRegistry */, ref args[0]); } } break; } } return(true); }
private void CreateSprite(int spriteNum) { sprite = new GameObject("Sprite"); TileRegistry.GetInstance().SetCharSprite(sprite.AddComponent <SpriteRenderer>(), sex, spriteNum); sprite.transform.SetParent(Constants.GRID.transform); }
public static bool Prefix(ChunkWorld __instance, byte brick, Vector3 corner, Vector3 up, Vector3 right, bool reversed, List <Vector3> verts, List <Vector2> uvs, List <int> tris, int id, int face) { if (TileRegistry.GetSingleton().HasEntry(id)) { TileInfo tile = TileRegistry.GetSingleton().GetEntry(id); int count = verts.Count; if (tile.Type == TileType.SOLID || tile.Type == TileType.WALL) { verts.Add(corner); verts.Add(corner + up); verts.Add(corner + up + right); verts.Add(corner + right); } else { if (face == 4) { verts.Add(corner + new Vector3(0f, 0f, 0.5f)); verts.Add(corner + new Vector3(0f, 0f, 0.5f) + up); verts.Add(corner + new Vector3(0f, 0f, 0.5f) + up + right); verts.Add(corner + new Vector3(0f, 0f, 0.5f) + right); } else if (face == 0 || face == 1) { verts.Add(corner + new Vector3(0f, 0f, 0.5f)); verts.Add(corner + up + new Vector3(0f, 0f, 0.5f)); verts.Add(corner + up + right); verts.Add(corner + right); } else if (face != 5) { verts.Add(corner + new Vector3(0f, 0f, 0.5f)); verts.Add(corner + up); verts.Add(corner + up + right); verts.Add(corner + right + new Vector3(0f, 0f, 0.5f)); } else { verts.Add(corner); verts.Add(corner + up); verts.Add(corner + up + right); verts.Add(corner + right); } } uvs.Add(new Vector2(tile.Sprite.coords.x, tile.Sprite.coords.y)); uvs.Add(new Vector2(tile.Sprite.coords.x, tile.Sprite.coords.y + 1)); uvs.Add(new Vector2(tile.Sprite.coords.x + 1, tile.Sprite.coords.y + 1)); uvs.Add(new Vector2(tile.Sprite.coords.x + 1, tile.Sprite.coords.y)); if (reversed) { tris.Add(count); tris.Add(count + 1); tris.Add(count + 2); tris.Add(count + 2); tris.Add(count + 3); tris.Add(count); } else { tris.Add(count + 1); tris.Add(count); tris.Add(count + 2); tris.Add(count + 3); tris.Add(count + 2); tris.Add(count); } return(false); } return(true); }
public void TestSetup() { _eventsFired = EventFlags.None; _registry = new TileRegistry(_service.GraphicsDevice); _pool = new TilePool("pool", _registry, 16, 16); }