From b0f8c0b4174b0cf1855f36e847d5e3255c317284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sat, 22 Dec 2018 21:32:58 +0100 Subject: [PATCH 01/33] Fixed position and scale of visual elements when zoomed in --- MechTransferAssemblerWorld.cs | 3 ++- UI/FilterHoverUI.cs | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/MechTransferAssemblerWorld.cs b/MechTransferAssemblerWorld.cs index 73e5b65..5a1e78e 100644 --- a/MechTransferAssemblerWorld.cs +++ b/MechTransferAssemblerWorld.cs @@ -23,8 +23,9 @@ public override void Initialize() public override void PostDrawTiles() { - Main.spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend); + Main.spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, Main.DefaultSamplerState, null, null, null, Main.GameViewMatrix.TransformationMatrix); + //These should be recalculated for view space, but they don't really hurt anything like this, so... int screenLeft = (int)((Main.screenPosition.X) / 16f - 1f); int screenRight = (int)((Main.screenPosition.X + (float)Main.screenWidth) / 16f) + 2; int screenTop = (int)((Main.screenPosition.Y) / 16f - 1f); diff --git a/UI/FilterHoverUI.cs b/UI/FilterHoverUI.cs index 77eede8..4444000 100644 --- a/UI/FilterHoverUI.cs +++ b/UI/FilterHoverUI.cs @@ -51,8 +51,10 @@ public void Display(Item type, string text, Color textColor) itemText.TextColor = type.IsAir ? Color.Red : ItemRarity.GetColor(fakeInv[10].rare); panel.Width.Pixels = itemText.MinWidth.Pixels + Main.inventoryBackTexture.Width * 0.5f * Main.UIScale + 20; - Left.Pixels = Main.mouseX + 10; - Top.Pixels = Main.mouseY + 10; + Vector2 pos = Vector2.Transform(Main.MouseScreen, Main.GameViewMatrix.TransformationMatrix); + + Left.Pixels = pos.X + 10; + Top.Pixels = pos.Y + 10; Recalculate(); } From 22c329f4ba4b7b16e9a3eb60279fa4076eacba63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sat, 19 Jan 2019 00:47:24 +0100 Subject: [PATCH 02/33] Fixed HoverUI position when UIScale > 1 --- UI/FilterHoverUI.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UI/FilterHoverUI.cs b/UI/FilterHoverUI.cs index 4444000..620ca50 100644 --- a/UI/FilterHoverUI.cs +++ b/UI/FilterHoverUI.cs @@ -53,8 +53,8 @@ public void Display(Item type, string text, Color textColor) Vector2 pos = Vector2.Transform(Main.MouseScreen, Main.GameViewMatrix.TransformationMatrix); - Left.Pixels = pos.X + 10; - Top.Pixels = pos.Y + 10; + Left.Pixels = (pos.X + 10) / Main.UIScale; + Top.Pixels = (pos.Y + 10) / Main.UIScale; Recalculate(); } From 1331665e490ac9f91a10b11117c015dd855afd7a Mon Sep 17 00:00:00 2001 From: Flithor Date: Mon, 28 Jan 2019 21:34:47 +0800 Subject: [PATCH 03/33] add Chinese Localization added Filter converting recipe --- Items/PneumaticActuatorItem.cs | 2 + Tiles/BigButtonTile.cs | 1 + Tiles/MagicStorageInterfaceTile.cs | 2 + Tiles/OmniTurretTile.cs | 6 ++ Tiles/PlayerInterfaceTile.cs | 2 + Tiles/SmallButtonTile.cs | 1 + Tiles/StackExtractorTile.cs | 2 + Tiles/TransferAssemblerTile.cs | 2 + Tiles/TransferExtractorTile.cs | 2 + Tiles/TransferFilterTile.cs | 98 +++++++++++++++++++++++++++++- Tiles/TransferGateTile.cs | 2 + Tiles/TransferInjectorTile.cs | 2 + Tiles/TransferInletTile.cs | 2 + Tiles/TransferOutletTile.cs | 2 + Tiles/TransferPipeTile.cs | 2 + Tiles/TransferRelayTile.cs | 2 + 16 files changed, 129 insertions(+), 1 deletion(-) diff --git a/Items/PneumaticActuatorItem.cs b/Items/PneumaticActuatorItem.cs index 64d99fb..7701305 100644 --- a/Items/PneumaticActuatorItem.cs +++ b/Items/PneumaticActuatorItem.cs @@ -8,7 +8,9 @@ public class PneumaticActuatorItem : ModItem public override void SetStaticDefaults() { DisplayName.SetDefault("Pneumatic actuator"); + DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "气动执行器"); Tooltip.SetDefault("Used to craft item transfer devices"); + Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "合成物流设备的必需品"); } public override void SetDefaults() diff --git a/Tiles/BigButtonTile.cs b/Tiles/BigButtonTile.cs index ce01d0b..8140a5a 100644 --- a/Tiles/BigButtonTile.cs +++ b/Tiles/BigButtonTile.cs @@ -78,6 +78,7 @@ public override void PostLoad() i.value = Item.sellPrice(0, 0, 6, 0); mod.AddItem("BigButtonItem", i); i.DisplayName.AddTranslation(LangID.English, "Big button"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "大号按钮"); placeItems[0] = i; NetRouter.AddHandler(this); diff --git a/Tiles/MagicStorageInterfaceTile.cs b/Tiles/MagicStorageInterfaceTile.cs index d68426c..a113127 100644 --- a/Tiles/MagicStorageInterfaceTile.cs +++ b/Tiles/MagicStorageInterfaceTile.cs @@ -32,7 +32,9 @@ public override void PostLoad() i.placeType = Type; mod.AddItem("MagicStorageInterfaceItem", i); i.DisplayName.AddTranslation(LangID.English, "Magic storage interface"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "魔法存储接口"); i.Tooltip.AddTranslation(LangID.English, "Allows you to inject and extract items from storage systems"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "使物流系统可以访问魔法存储的库存"); placeItems[0] = i; } } diff --git a/Tiles/OmniTurretTile.cs b/Tiles/OmniTurretTile.cs index d7b081d..50be023 100644 --- a/Tiles/OmniTurretTile.cs +++ b/Tiles/OmniTurretTile.cs @@ -137,7 +137,9 @@ public override void PostLoad() i.value = Item.sellPrice(0, 1, 0, 0); mod.AddItem("OmniTurretItem", i); i.DisplayName.AddTranslation(LangID.English, "Omni turret"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "全方位炮台"); i.Tooltip.AddTranslation(LangID.English, "Shoots any standard ammo"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "能发射各种标准弹药,开启塔防时代"); placeItems[0] = i; //Super omni turret @@ -147,7 +149,9 @@ public override void PostLoad() i.style = 1; mod.AddItem("SuperOmniTurretItem", i); i.DisplayName.AddTranslation(LangID.English, "Super omni turret"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "超级全方位炮台"); i.Tooltip.AddTranslation(LangID.English, "Shoots any standard ammo"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "能发射各种标准弹药,速度更快!"); placeItems[1] = i; //Matter projector @@ -157,7 +161,9 @@ public override void PostLoad() i.style = 2; mod.AddItem("MatterProjectorItem", i); i.DisplayName.AddTranslation(LangID.English, "Matter projector"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物质投射器"); i.Tooltip.AddTranslation(LangID.English, "Shoots any standard ammo really, really fast"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "能发射各种标准弹药,而且它不限速!"); placeItems[2] = i; NetRouter.AddHandler(this); diff --git a/Tiles/PlayerInterfaceTile.cs b/Tiles/PlayerInterfaceTile.cs index 023ae3d..4784d38 100644 --- a/Tiles/PlayerInterfaceTile.cs +++ b/Tiles/PlayerInterfaceTile.cs @@ -37,7 +37,9 @@ public override void PostLoad() mod.AddItem("PlayerInterfaceItem", i); i.value = Item.sellPrice(0, 1, 0, 0); i.DisplayName.AddTranslation(LangID.English, "Player interface"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "玩家接口"); i.Tooltip.AddTranslation(LangID.English, "Allows you to inject and extract items from a players inventory"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "允许物流系统访问玩家的装备栏和库存"); placeItems[0] = i; } diff --git a/Tiles/SmallButtonTile.cs b/Tiles/SmallButtonTile.cs index b828f5c..190d5b7 100644 --- a/Tiles/SmallButtonTile.cs +++ b/Tiles/SmallButtonTile.cs @@ -83,6 +83,7 @@ public override void PostLoad() i.value = Item.sellPrice(0, 0, 4, 0); mod.AddItem("SmallButtonItem", i); i.DisplayName.AddTranslation(LangID.English, "Small button"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "小号按钮"); placeItems[0] = i; NetRouter.AddHandler(this); diff --git a/Tiles/StackExtractorTile.cs b/Tiles/StackExtractorTile.cs index 2c353fc..7489128 100644 --- a/Tiles/StackExtractorTile.cs +++ b/Tiles/StackExtractorTile.cs @@ -57,7 +57,9 @@ public override void PostLoad() i.value = Item.sellPrice(0, 1, 0, 0); mod.AddItem("StackExtractorItem", i); i.DisplayName.AddTranslation(LangID.English, "Stack extractor"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物品提取器(组)"); i.Tooltip.AddTranslation(LangID.English, "Extracts a whole stack at once"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "从相邻容器取出物品,一次可以取出一组物品"); placeItems[0] = i; } diff --git a/Tiles/TransferAssemblerTile.cs b/Tiles/TransferAssemblerTile.cs index 3521aee..7b99548 100644 --- a/Tiles/TransferAssemblerTile.cs +++ b/Tiles/TransferAssemblerTile.cs @@ -241,7 +241,9 @@ public override void PostLoad() i.value = Item.sellPrice(0, 1, 0, 0); mod.AddItem("TransferAssemblerItem", i); i.DisplayName.AddTranslation(LangID.English, "Transfer assembler"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "自动合成器"); i.Tooltip.AddTranslation(LangID.English, "WIP\nCrafts items automatically\nRight click with item in hand to set filter"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "开发中\n允许自动合成物品\n手持物品右键来设置需要合成的物品\n暂时不支持指定合成配方"); placeItems[0] = i; } diff --git a/Tiles/TransferExtractorTile.cs b/Tiles/TransferExtractorTile.cs index bb6fcf6..a0c40ad 100644 --- a/Tiles/TransferExtractorTile.cs +++ b/Tiles/TransferExtractorTile.cs @@ -56,7 +56,9 @@ public override void PostLoad() i.placeType = Type; mod.AddItem("TransferExtractorItem", i); i.DisplayName.AddTranslation(LangID.English, "Transfer extractor"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物品提取器"); i.Tooltip.AddTranslation(LangID.English, "Extracts items from adjacent chests"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "从相邻的容器中提取物品\n一次一个"); placeItems[0] = i; } diff --git a/Tiles/TransferFilterTile.cs b/Tiles/TransferFilterTile.cs index 8346d1e..1a4d022 100644 --- a/Tiles/TransferFilterTile.cs +++ b/Tiles/TransferFilterTile.cs @@ -5,6 +5,7 @@ using Terraria.DataStructures; using Terraria.Enums; using Terraria.ID; +using Terraria.Localization; using Terraria.ModLoader; using Terraria.ObjectData; @@ -80,7 +81,9 @@ public override void PostLoad() i.placeType = Type; mod.AddItem("TransferFilterItem", i); i.DisplayName.AddTranslation(LangID.English, "Transfer filter (whitelist)"); + i.DisplayName.AddTranslation(GameCulture.Chinese, "物流过滤器(白名单)"); i.Tooltip.AddTranslation(LangID.English, "Place in line with Transfer pipe\nRight click with item in hand to set filter"); + i.Tooltip.AddTranslation(GameCulture.Chinese, "将其放置在物流管道中用以过滤允许通过的物品\n手持物品右键来设置允许通过的物品\n可以使用过滤卡"); placeItems[0] = i; //InverseFilter @@ -89,7 +92,9 @@ public override void PostLoad() i.style = 1; mod.AddItem("InverseTransferFilterItem", i); i.DisplayName.AddTranslation(LangID.English, "Transfer filter (blacklist)"); + i.DisplayName.AddTranslation(GameCulture.Chinese, "物流过滤器(黑名单)"); i.Tooltip.AddTranslation(LangID.English, "Place in line with Transfer pipe\nRight click with item in hand to set filter"); + i.Tooltip.AddTranslation(GameCulture.Chinese, "将其放置在物流管道中用以过滤不允许通过的物品\n手持物品右键来设置不允许通过的物品\n可以使用过滤卡"); placeItems[1] = i; LoadFilters(); @@ -105,6 +110,10 @@ public override void Addrecipes() r.AddTile(TileID.WorkBenches); r.SetResult(placeItems[0], 1); r.AddRecipe(); + ModRecipe r2 = new ModRecipe(mod); + r2.AddIngredient(placeItems[1]); + r2.SetResult(placeItems[0], 1); + r2.AddRecipe(); //InverseFilter r = new ModRecipe(mod); @@ -114,6 +123,10 @@ public override void Addrecipes() r.AddTile(TileID.WorkBenches); r.SetResult(placeItems[1], 1); r.AddRecipe(); + r2 = new ModRecipe(mod); + r2.AddIngredient(placeItems[0]); + r2.SetResult(placeItems[1], 1); + r2.AddRecipe(); LoadBagFilter(); //LogFilterTets(); @@ -125,10 +138,18 @@ private ItemFilterItem createFilter(string type, int recipeItem, ItemFilterItem. i.recipeItem = recipeItem; mod.AddItem(type + "FilterItem", i); if (Main.halloween && type == "Dye") + { i.DisplayName.AddTranslation(LangID.English, string.Format("Item filter (Die)", type)); + i.DisplayName.AddTranslation(GameCulture.Chinese, string.Format("物品过滤卡(Dye,Die,黛!)", filterTypeLocalizationStrDic[GameCulture.Chinese][type])); + } else + { i.DisplayName.AddTranslation(LangID.English, string.Format("Item filter ({0})", type)); + i.DisplayName.AddTranslation(GameCulture.Chinese, string.Format("物品过滤卡({0})", filterTypeLocalizationStrDic[GameCulture.Chinese][type])); + } i.Tooltip.AddTranslation(LangID.English, "Use in Transfer filter"); + i.Tooltip.AddTranslation(GameCulture.Chinese, "手持它右键物流过滤器来设置指定类型的过滤条件"); + filterItems.Add(i.item.type, i); return i; @@ -176,7 +197,82 @@ private void LoadFilters() createFilter("Tile", ItemID.DirtBlock, x => x.createTile > -1); createFilter("Wall", ItemID.WoodWall, x => x.createWall > 0); } - + private Dictionary> filterTypeLocalizationStrDic = + new Dictionary> + { + { GameCulture.Chinese, new Dictionary + { + { "Any", "任意" }, + { "Rarity-Gray", "稀有度-灰色" }, + { "Rarity-White", "稀有度-白色" }, + { "Rarity-Blue", "稀有度-蓝色" }, + { "Rarity-Green", "稀有度-绿色" }, + { "Rarity-Orange", "稀有度-橙色" }, + { "Rarity-LightRed", "稀有度-浅红色" }, + { "Rarity-Pink", "稀有度-粉红色" }, + { "Rarity-LightPurple", "稀有度-浅紫色" }, + { "Rarity-Lime", "稀有度-青柠色" }, + { "Rarity-Yellow", "稀有度-黄色" }, + { "Rarity-Cyan", "稀有度-青色" }, + { "Rarity-Red", "稀有度-红色" }, + { "Rarity-Purple", "稀有度-紫色" }, + { "Rarity-Rainbow", "稀有度-彩虹色" }, + { "Rarity-Amber", "稀有度-琥珀色" }, + { "Equipable", "可装备" }, + { "Armor", "盔甲" }, + { "Vanity", "时装" }, + { "Accessory", "配饰" }, + { "Dye", "染料" }, + { "Ammo", "弹药" }, + { "Bait", "鱼饵" }, + { "Money", "钱币" }, + { "Bag", "宝藏袋" }, + { "Tool", "工具" }, + { "Weapon", "武器" }, + { "Consumable", "消耗品" }, + { "Material", "材料" }, + { "Potion", "药水" }, + { "Tile", "图格" }, + { "Wall", "墙" }, + } + }, + //{ Terraria.Localization.GameCulture.OtherCulture, new Dictionary + // { + // { "Any", "" }, + // { "Rarity-Gray", "" }, + // { "Rarity-White", "" }, + // { "Rarity-Blue", "" }, + // { "Rarity-Green", "" }, + // { "Rarity-Orange", "" }, + // { "Rarity-LightRed", "" }, + // { "Rarity-Pink", "" }, + // { "Rarity-LightPurple", "" }, + // { "Rarity-Lime", "" }, + // { "Rarity-Yellow", "" }, + // { "Rarity-Cyan", "" }, + // { "Rarity-Red", "" }, + // { "Rarity-Purple", "" }, + // { "Rarity-Rainbow", "" }, + // { "Rarity-Amber", "" }, + // { "Equipable", "" }, + // { "Armor", "" }, + // { "Vanity", "" }, + // { "Accessory", "" }, + // { "Dye", "" }, + // { "Ammo", "" }, + // { "Bait", "" }, + // { "Money", "" }, + // { "Bag", "" }, + // { "Tool", "" }, + // { "Weapon", "" }, + // { "Consumable", "" }, + // { "Material", "" }, + // { "Potion", "" }, + // { "Tile", "" }, + // { "Wall", "" }, + // } + //} + }; private void LoadBagFilter() { Bags = new HashSet(); diff --git a/Tiles/TransferGateTile.cs b/Tiles/TransferGateTile.cs index 04fd22a..715c823 100644 --- a/Tiles/TransferGateTile.cs +++ b/Tiles/TransferGateTile.cs @@ -55,7 +55,9 @@ public override void PostLoad() i.placeType = Type; mod.AddItem("TransferGateItem", i); i.DisplayName.AddTranslation(LangID.English, "Transfer gate"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物流管道阀门"); i.Tooltip.AddTranslation(LangID.English, "Place in line with Transfer pipe to toggle the item flow with wire"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "将其放置在物流管道中使用电信号控制管道通路"); placeItems[0] = i; } diff --git a/Tiles/TransferInjectorTile.cs b/Tiles/TransferInjectorTile.cs index aab08c2..3dc9e84 100644 --- a/Tiles/TransferInjectorTile.cs +++ b/Tiles/TransferInjectorTile.cs @@ -53,7 +53,9 @@ public override void PostLoad() i.placeType = Type; mod.AddItem("TransferInjectorItem", i); i.DisplayName.AddTranslation(LangID.English, "Transfer Injector"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物品注入器"); i.Tooltip.AddTranslation(LangID.English, "Injects items into adjacent chests"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "将物品放入相邻的容器中\n它也可以被用在提取器上用于自动提取"); placeItems[0] = i; } diff --git a/Tiles/TransferInletTile.cs b/Tiles/TransferInletTile.cs index b71c92f..705aeba 100644 --- a/Tiles/TransferInletTile.cs +++ b/Tiles/TransferInletTile.cs @@ -51,7 +51,9 @@ public override void PostLoad() i.placeType = Type; mod.AddItem("TransferInletItem", i); i.DisplayName.AddTranslation(LangID.English, "Transfer inlet"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物品拾取口"); i.Tooltip.AddTranslation(LangID.English, "Picks up dropped items"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "拾取掉落在上方的物品"); placeItems[0] = i; } diff --git a/Tiles/TransferOutletTile.cs b/Tiles/TransferOutletTile.cs index 8258421..8631416 100644 --- a/Tiles/TransferOutletTile.cs +++ b/Tiles/TransferOutletTile.cs @@ -55,7 +55,9 @@ public override void PostLoad() i.placeType = Type; mod.AddItem("TransferOutletItem", i); i.DisplayName.AddTranslation(LangID.English, "Transfer outlet"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物品丢弃口"); i.Tooltip.AddTranslation(LangID.English, "Drops item"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "抛出物品"); placeItems[0] = i; } diff --git a/Tiles/TransferPipeTile.cs b/Tiles/TransferPipeTile.cs index 82418b5..6f679a2 100644 --- a/Tiles/TransferPipeTile.cs +++ b/Tiles/TransferPipeTile.cs @@ -69,7 +69,9 @@ public override void PostLoad() i.placeType = Type; mod.AddItem("TransferPipeItem", i); i.DisplayName.AddTranslation(LangID.English, "Transfer pipe"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物流管道"); i.Tooltip.AddTranslation(LangID.English, "Used to connect item transfer devices"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "用来连接物流设备和传输物品"); placeItems[0] = i; } diff --git a/Tiles/TransferRelayTile.cs b/Tiles/TransferRelayTile.cs index 4564989..d30000b 100644 --- a/Tiles/TransferRelayTile.cs +++ b/Tiles/TransferRelayTile.cs @@ -69,7 +69,9 @@ public override void PostLoad() i.placeType = Type; mod.AddItem("TransferRelayItem", i); i.DisplayName.AddTranslation(LangID.English, "Transfer relay"); + i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物流中继器"); i.Tooltip.AddTranslation(LangID.English, "Receives items, and sends them out again"); + i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "接收物品,然后再将其发送出去"); placeItems[0] = i; } From 3137edb783a7b5eb1a94348f9a31bf06d93241ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Tue, 29 Jan 2019 16:14:40 +0100 Subject: [PATCH 04/33] Moved item texts to .lang files --- Items/PneumaticActuatorItem.cs | 8 --- LangUtils.cs | 31 ++++++++++ Localization/en-US.lang | 86 ++++++++++++++++++++++++++ Localization/zh-Hans.lang | 86 ++++++++++++++++++++++++++ MechTransfer.csproj | 1 + Tiles/BigButtonTile.cs | 2 - Tiles/MagicStorageInterfaceTile.cs | 4 -- Tiles/OmniTurretTile.cs | 12 ---- Tiles/PlayerInterfaceTile.cs | 4 -- Tiles/SmallButtonTile.cs | 2 - Tiles/StackExtractorTile.cs | 4 -- Tiles/TransferAssemblerTile.cs | 4 -- Tiles/TransferExtractorTile.cs | 4 -- Tiles/TransferFilterTile.cs | 96 +----------------------------- Tiles/TransferGateTile.cs | 4 -- Tiles/TransferInjectorTile.cs | 4 -- Tiles/TransferInletTile.cs | 4 -- Tiles/TransferOutletTile.cs | 4 -- Tiles/TransferPipeTile.cs | 4 -- Tiles/TransferRelayTile.cs | 4 -- 20 files changed, 207 insertions(+), 161 deletions(-) create mode 100644 LangUtils.cs create mode 100644 Localization/en-US.lang create mode 100644 Localization/zh-Hans.lang diff --git a/Items/PneumaticActuatorItem.cs b/Items/PneumaticActuatorItem.cs index 7701305..c231332 100644 --- a/Items/PneumaticActuatorItem.cs +++ b/Items/PneumaticActuatorItem.cs @@ -5,14 +5,6 @@ namespace MechTransfer.Items { public class PneumaticActuatorItem : ModItem { - public override void SetStaticDefaults() - { - DisplayName.SetDefault("Pneumatic actuator"); - DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "气动执行器"); - Tooltip.SetDefault("Used to craft item transfer devices"); - Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "合成物流设备的必需品"); - } - public override void SetDefaults() { item.width = 26; diff --git a/LangUtils.cs b/LangUtils.cs new file mode 100644 index 0000000..35d57e7 --- /dev/null +++ b/LangUtils.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Terraria; +using Terraria.Localization; +using Terraria.ModLoader; +using System.Reflection; + +namespace MechTransfer +{ + static class LangUtils + { + public static ModTranslation GetModTranslation(this Mod mod, string key) + { + IDictionary translations = (IDictionary)(typeof(Mod).GetField("translations", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(mod)); + return translations[key]; + } + + public static void SwapTranslation(this ModTranslation target, ModTranslation source) + { + //Currently the Steam API supports 29 languages + for (int i = 1; i <= 29; i++) + { + string translation = source.GetTranslation(i); + if (i == 1 || translation != source.GetDefault()) + target.AddTranslation(i, translation); + } + } + } +} diff --git a/Localization/en-US.lang b/Localization/en-US.lang new file mode 100644 index 0000000..b43a03c --- /dev/null +++ b/Localization/en-US.lang @@ -0,0 +1,86 @@ +ItemName.PneumaticActuatorItem = Pneumatic actuator +ItemTooltip.PneumaticActuatorItem = Used to craft item transfer devices + +ItemName.BigButtonItem = Big button +ItemName.SmallButtonItem = Small button + +ItemName.OmniTurretItem = Omni turret +ItemTooltip.OmniTurretItem = Shoots any standard ammo +ItemName.SuperOmniTurretItem = Super omni turret +ItemTooltip.SuperOmniTurretItem = Shoots any standard ammo +ItemName.MatterProjectorItem = Matter projector +ItemTooltip.MatterProjectorItem = Shoots any standard ammo really, really fast + +ItemName.TransferPipeItem = Transfer pipe +ItemTooltip.TransferPipeItem = Used to connect item transfer devices + +ItemName.TransferExtractorItem = Transfer extractor +ItemTooltip.TransferExtractorItem = Extracts items from adjacent chests + +ItemName.StackExtractorItem = Stack extractor +ItemTooltip.StackExtractorItem = Extracts a whole stack at once + +ItemName.TransferInletItem = Transfer inlet +ItemTooltip.TransferInletItem = Picks up dropped items + +ItemName.TransferFilterItem = Transfer filter (whitelist) +ItemTooltip.TransferFilterItem = Place in line with Transfer pipe\nRight click with item in hand to set filter +ItemName.InverseTransferFilterItem = Transfer filter (blacklist) +ItemTooltip.InverseTransferFilterItem = Place in line with Transfer pipe\nRight click with item in hand to set filter + +ItemName.TransferGateItem = Transfer gate +ItemTooltip.TransferGateItem = Place in line with Transfer pipe to toggle the item flow with wire + +ItemName.TransferRelayItem = Transfer relay +ItemTooltip.TransferRelayItem = Receives items, and sends them out again + +ItemName.TransferInjectorItem = Transfer Injector +ItemTooltip.TransferInjectorItem = Injects items into adjacent chests + +ItemName.TransferOutletItem = Transfer outlet +ItemTooltip.TransferOutletItem = Drops item + +ItemName.MagicStorageInterfaceItem = Magic storage interface +ItemTooltip.MagicStorageInterfaceItem = Allows you to inject and extract items from storage systems + +ItemName.PlayerInterfaceItem = Player interface +ItemTooltip.PlayerInterfaceItem = Allows you to inject and extract items from a players inventory + +ItemName.TransferAssemblerItem = Transfer assembler +ItemTooltip.TransferAssemblerItem = WIP\nCrafts items automatically\nRight click with item in hand to set filter + +Common.ItemName.FilterItem = Item filter +Common.ItemTooltip.FilterItem = Use in Transfer filter +ItemName.AnyFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Any) +ItemName.Rarity-GrayFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Gray) +ItemName.Rarity-WhiteFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-White) +ItemName.Rarity-BlueFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Blue) +ItemName.Rarity-GreenFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Green) +ItemName.Rarity-OrangeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Orange) +ItemName.Rarity-LightRedFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-LightRed) +ItemName.Rarity-PinkFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Pink) +ItemName.Rarity-LightPurpleFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-LightPurple) +ItemName.Rarity-LimeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Lime) +ItemName.Rarity-YellowFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Yellow) +ItemName.Rarity-CyanFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Cyan) +ItemName.Rarity-RedFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Red) +ItemName.Rarity-PurpleFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Purple) +ItemName.Rarity-RainbowFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Rainbow) +ItemName.Rarity-AmberFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Amber) +ItemName.EquipableFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Equipable) +ItemName.ArmorFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Armor) +ItemName.VanityFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Vanity) +ItemName.AccessoryFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Accessory) +ItemName.DyeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Dye) +EasterEgg.ItemName.DyeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Die) +ItemName.AmmoFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Ammo) +ItemName.BaitFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Bait) +ItemName.MoneyFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Money) +ItemName.BagFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Bag) +ItemName.ToolFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Tool) +ItemName.WeaponFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Weapon) +ItemName.ConsumableFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Consumable) +ItemName.MaterialFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Material) +ItemName.PotionFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Potion) +ItemName.TileFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Tile) +ItemName.WallFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Wall) diff --git a/Localization/zh-Hans.lang b/Localization/zh-Hans.lang new file mode 100644 index 0000000..0b19c8a --- /dev/null +++ b/Localization/zh-Hans.lang @@ -0,0 +1,86 @@ +ItemName.PneumaticActuatorItem = 气动执行器 +ItemTooltip.PneumaticActuatorItem = 合成物流设备的必需品 + +ItemName.BigButtonItem = 大号按钮 +ItemName.SmallButtonItem = 小号按钮 + +ItemName.OmniTurretItem = 全方位炮台 +ItemTooltip.OmniTurretItem = 能发射各种标准弹药,开启塔防时代 +ItemName.SuperOmniTurretItem = 超级全方位炮台 +ItemTooltip.SuperOmniTurretItem = 能发射各种标准弹药,速度更快! +ItemName.MatterProjectorItem = 物质投射器 +ItemTooltip.MatterProjectorItem = 能发射各种标准弹药,而且它不限速! + +ItemName.TransferPipeItem = 物流管道 +ItemTooltip.TransferPipeItem = 用来连接物流设备和传输物品 + +ItemName.TransferExtractorItem = 物品提取器 +ItemTooltip.TransferExtractorItem = 从相邻的容器中提取物品\n一次一个 + +ItemName.StackExtractorItem = 物品提取器(组) +ItemTooltip.StackExtractorItem = 从相邻容器取出物品,一次可以取出一组物品 + +ItemName.TransferInletItem = 物品拾取口 +ItemTooltip.TransferInletItem = 拾取掉落在上方的物品 + +ItemName.TransferFilterItem = 物流过滤器(白名单) +ItemTooltip.TransferFilterItem = 将其放置在物流管道中用以过滤允许通过的物品\n手持物品右键来设置允许通过的物品\n可以使用过滤卡 +ItemName.InverseTransferFilterItem = 物流过滤器(黑名单) +ItemTooltip.InverseTransferFilterItem = 将其放置在物流管道中用以过滤不允许通过的物品\n手持物品右键来设置不允许通过的物品\n可以使用过滤卡 + +ItemName.TransferGateItem = 物流管道阀门 +ItemTooltip.TransferGateItem = 将其放置在物流管道中使用电信号控制管道通路 + +ItemName.TransferRelayItem = 物流中继器 +ItemTooltip.TransferRelayItem = 接收物品,然后再将其发送出去 + +ItemName.TransferInjectorItem = 物品注入器 +ItemTooltip.TransferInjectorItem = 将物品放入相邻的容器中\n它也可以被用在提取器上用于自动提取 + +ItemName.TransferOutletItem = 物品丢弃口 +ItemTooltip.TransferOutletItem = 抛出物品 + +ItemName.MagicStorageInterfaceItem = 魔法存储接口 +ItemTooltip.MagicStorageInterfaceItem = 使物流系统可以访问魔法存储的库存 + +ItemName.PlayerInterfaceItem = 玩家接口 +ItemTooltip.PlayerInterfaceItem = 允许物流系统访问玩家的装备栏和库存 + +ItemName.TransferAssemblerItem = 自动合成器 +ItemTooltip.TransferAssemblerItem = 开发中\n允许自动合成物品\n手持物品右键来设置需要合成的物品\n暂时不支持指定合成配方 + +Common.ItemName.FilterItem = 物品过滤卡 +Common.ItemTooltip.FilterItem = 手持它右键物流过滤器来设置指定类型的过滤条件 +ItemName.AnyFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(任意) +ItemName.Rarity-GrayFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-灰色) +ItemName.Rarity-WhiteFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-白色) +ItemName.Rarity-BlueFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-蓝色) +ItemName.Rarity-GreenFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-绿色) +ItemName.Rarity-OrangeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-橙色) +ItemName.Rarity-LightRedFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-浅红色) +ItemName.Rarity-PinkFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-粉红色) +ItemName.Rarity-LightPurpleFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-浅紫色) +ItemName.Rarity-LimeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-青柠色) +ItemName.Rarity-YellowFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-黄色) +ItemName.Rarity-CyanFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-青色) +ItemName.Rarity-RedFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-红色) +ItemName.Rarity-PurpleFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-紫色) +ItemName.Rarity-RainbowFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-彩虹色) +ItemName.Rarity-AmberFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(稀有度-琥珀色) +ItemName.EquipableFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(可装备) +ItemName.ArmorFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(盔甲) +ItemName.VanityFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(时装) +ItemName.AccessoryFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(配饰) +ItemName.DyeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(染料) +EasterEgg.ItemName.DyeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(Dye,Die,黛!) +ItemName.AmmoFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(弹药) +ItemName.BaitFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(鱼饵) +ItemName.MoneyFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(钱币) +ItemName.BagFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(宝藏袋) +ItemName.ToolFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(工具) +ItemName.WeaponFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(武器) +ItemName.ConsumableFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(消耗品) +ItemName.MaterialFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(材料) +ItemName.PotionFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(药水) +ItemName.TileFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(图格) +ItemName.WallFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem}(墙) diff --git a/MechTransfer.csproj b/MechTransfer.csproj index 6ace1ca..32b7cef 100644 --- a/MechTransfer.csproj +++ b/MechTransfer.csproj @@ -50,6 +50,7 @@ + diff --git a/Tiles/BigButtonTile.cs b/Tiles/BigButtonTile.cs index 8140a5a..cbc3545 100644 --- a/Tiles/BigButtonTile.cs +++ b/Tiles/BigButtonTile.cs @@ -77,8 +77,6 @@ public override void PostLoad() i.placeType = Type; i.value = Item.sellPrice(0, 0, 6, 0); mod.AddItem("BigButtonItem", i); - i.DisplayName.AddTranslation(LangID.English, "Big button"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "大号按钮"); placeItems[0] = i; NetRouter.AddHandler(this); diff --git a/Tiles/MagicStorageInterfaceTile.cs b/Tiles/MagicStorageInterfaceTile.cs index a113127..fc4f00c 100644 --- a/Tiles/MagicStorageInterfaceTile.cs +++ b/Tiles/MagicStorageInterfaceTile.cs @@ -31,10 +31,6 @@ public override void PostLoad() SimplePlaceableItem i = new SimplePlaceableItem(); i.placeType = Type; mod.AddItem("MagicStorageInterfaceItem", i); - i.DisplayName.AddTranslation(LangID.English, "Magic storage interface"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "魔法存储接口"); - i.Tooltip.AddTranslation(LangID.English, "Allows you to inject and extract items from storage systems"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "使物流系统可以访问魔法存储的库存"); placeItems[0] = i; } } diff --git a/Tiles/OmniTurretTile.cs b/Tiles/OmniTurretTile.cs index 50be023..98145ee 100644 --- a/Tiles/OmniTurretTile.cs +++ b/Tiles/OmniTurretTile.cs @@ -136,10 +136,6 @@ public override void PostLoad() i.placeType = Type; i.value = Item.sellPrice(0, 1, 0, 0); mod.AddItem("OmniTurretItem", i); - i.DisplayName.AddTranslation(LangID.English, "Omni turret"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "全方位炮台"); - i.Tooltip.AddTranslation(LangID.English, "Shoots any standard ammo"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "能发射各种标准弹药,开启塔防时代"); placeItems[0] = i; //Super omni turret @@ -148,10 +144,6 @@ public override void PostLoad() i.value = Item.sellPrice(0, 1, 0, 0); i.style = 1; mod.AddItem("SuperOmniTurretItem", i); - i.DisplayName.AddTranslation(LangID.English, "Super omni turret"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "超级全方位炮台"); - i.Tooltip.AddTranslation(LangID.English, "Shoots any standard ammo"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "能发射各种标准弹药,速度更快!"); placeItems[1] = i; //Matter projector @@ -160,10 +152,6 @@ public override void PostLoad() i.value = Item.sellPrice(0, 1, 0, 0); i.style = 2; mod.AddItem("MatterProjectorItem", i); - i.DisplayName.AddTranslation(LangID.English, "Matter projector"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物质投射器"); - i.Tooltip.AddTranslation(LangID.English, "Shoots any standard ammo really, really fast"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "能发射各种标准弹药,而且它不限速!"); placeItems[2] = i; NetRouter.AddHandler(this); diff --git a/Tiles/PlayerInterfaceTile.cs b/Tiles/PlayerInterfaceTile.cs index 4784d38..f65cca4 100644 --- a/Tiles/PlayerInterfaceTile.cs +++ b/Tiles/PlayerInterfaceTile.cs @@ -36,10 +36,6 @@ public override void PostLoad() i.placeType = Type; mod.AddItem("PlayerInterfaceItem", i); i.value = Item.sellPrice(0, 1, 0, 0); - i.DisplayName.AddTranslation(LangID.English, "Player interface"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "玩家接口"); - i.Tooltip.AddTranslation(LangID.English, "Allows you to inject and extract items from a players inventory"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "允许物流系统访问玩家的装备栏和库存"); placeItems[0] = i; } diff --git a/Tiles/SmallButtonTile.cs b/Tiles/SmallButtonTile.cs index 190d5b7..00bc5ae 100644 --- a/Tiles/SmallButtonTile.cs +++ b/Tiles/SmallButtonTile.cs @@ -82,8 +82,6 @@ public override void PostLoad() i.placeType = Type; i.value = Item.sellPrice(0, 0, 4, 0); mod.AddItem("SmallButtonItem", i); - i.DisplayName.AddTranslation(LangID.English, "Small button"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "小号按钮"); placeItems[0] = i; NetRouter.AddHandler(this); diff --git a/Tiles/StackExtractorTile.cs b/Tiles/StackExtractorTile.cs index 7489128..474a793 100644 --- a/Tiles/StackExtractorTile.cs +++ b/Tiles/StackExtractorTile.cs @@ -56,10 +56,6 @@ public override void PostLoad() i.placeType = Type; i.value = Item.sellPrice(0, 1, 0, 0); mod.AddItem("StackExtractorItem", i); - i.DisplayName.AddTranslation(LangID.English, "Stack extractor"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物品提取器(组)"); - i.Tooltip.AddTranslation(LangID.English, "Extracts a whole stack at once"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "从相邻容器取出物品,一次可以取出一组物品"); placeItems[0] = i; } diff --git a/Tiles/TransferAssemblerTile.cs b/Tiles/TransferAssemblerTile.cs index 7b99548..6210bd5 100644 --- a/Tiles/TransferAssemblerTile.cs +++ b/Tiles/TransferAssemblerTile.cs @@ -240,10 +240,6 @@ public override void PostLoad() i.placeType = Type; i.value = Item.sellPrice(0, 1, 0, 0); mod.AddItem("TransferAssemblerItem", i); - i.DisplayName.AddTranslation(LangID.English, "Transfer assembler"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "自动合成器"); - i.Tooltip.AddTranslation(LangID.English, "WIP\nCrafts items automatically\nRight click with item in hand to set filter"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "开发中\n允许自动合成物品\n手持物品右键来设置需要合成的物品\n暂时不支持指定合成配方"); placeItems[0] = i; } diff --git a/Tiles/TransferExtractorTile.cs b/Tiles/TransferExtractorTile.cs index a0c40ad..b8672cc 100644 --- a/Tiles/TransferExtractorTile.cs +++ b/Tiles/TransferExtractorTile.cs @@ -55,10 +55,6 @@ public override void PostLoad() SimplePlaceableItem i = new SimplePlaceableItem(); i.placeType = Type; mod.AddItem("TransferExtractorItem", i); - i.DisplayName.AddTranslation(LangID.English, "Transfer extractor"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物品提取器"); - i.Tooltip.AddTranslation(LangID.English, "Extracts items from adjacent chests"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "从相邻的容器中提取物品\n一次一个"); placeItems[0] = i; } diff --git a/Tiles/TransferFilterTile.cs b/Tiles/TransferFilterTile.cs index 1a4d022..823ab82 100644 --- a/Tiles/TransferFilterTile.cs +++ b/Tiles/TransferFilterTile.cs @@ -80,10 +80,6 @@ public override void PostLoad() SimplePlaceableItem i = new SimplePlaceableItem(); i.placeType = Type; mod.AddItem("TransferFilterItem", i); - i.DisplayName.AddTranslation(LangID.English, "Transfer filter (whitelist)"); - i.DisplayName.AddTranslation(GameCulture.Chinese, "物流过滤器(白名单)"); - i.Tooltip.AddTranslation(LangID.English, "Place in line with Transfer pipe\nRight click with item in hand to set filter"); - i.Tooltip.AddTranslation(GameCulture.Chinese, "将其放置在物流管道中用以过滤允许通过的物品\n手持物品右键来设置允许通过的物品\n可以使用过滤卡"); placeItems[0] = i; //InverseFilter @@ -91,10 +87,6 @@ public override void PostLoad() i.placeType = Type; i.style = 1; mod.AddItem("InverseTransferFilterItem", i); - i.DisplayName.AddTranslation(LangID.English, "Transfer filter (blacklist)"); - i.DisplayName.AddTranslation(GameCulture.Chinese, "物流过滤器(黑名单)"); - i.Tooltip.AddTranslation(LangID.English, "Place in line with Transfer pipe\nRight click with item in hand to set filter"); - i.Tooltip.AddTranslation(GameCulture.Chinese, "将其放置在物流管道中用以过滤不允许通过的物品\n手持物品右键来设置不允许通过的物品\n可以使用过滤卡"); placeItems[1] = i; LoadFilters(); @@ -139,16 +131,9 @@ private ItemFilterItem createFilter(string type, int recipeItem, ItemFilterItem. mod.AddItem(type + "FilterItem", i); if (Main.halloween && type == "Dye") { - i.DisplayName.AddTranslation(LangID.English, string.Format("Item filter (Die)", type)); - i.DisplayName.AddTranslation(GameCulture.Chinese, string.Format("物品过滤卡(Dye,Die,黛!)", filterTypeLocalizationStrDic[GameCulture.Chinese][type])); + i.DisplayName.SwapTranslation(mod.GetModTranslation("Mods.MechTransfer.EasterEgg.ItemName.DyeFilterItem")); } - else - { - i.DisplayName.AddTranslation(LangID.English, string.Format("Item filter ({0})", type)); - i.DisplayName.AddTranslation(GameCulture.Chinese, string.Format("物品过滤卡({0})", filterTypeLocalizationStrDic[GameCulture.Chinese][type])); - } - i.Tooltip.AddTranslation(LangID.English, "Use in Transfer filter"); - i.Tooltip.AddTranslation(GameCulture.Chinese, "手持它右键物流过滤器来设置指定类型的过滤条件"); + i.Tooltip.SwapTranslation(mod.GetModTranslation("Mods.MechTransfer.Common.ItemTooltip.FilterItem")); filterItems.Add(i.item.type, i); @@ -197,82 +182,7 @@ private void LoadFilters() createFilter("Tile", ItemID.DirtBlock, x => x.createTile > -1); createFilter("Wall", ItemID.WoodWall, x => x.createWall > 0); } - private Dictionary> filterTypeLocalizationStrDic = - new Dictionary> - { - { GameCulture.Chinese, new Dictionary - { - { "Any", "任意" }, - { "Rarity-Gray", "稀有度-灰色" }, - { "Rarity-White", "稀有度-白色" }, - { "Rarity-Blue", "稀有度-蓝色" }, - { "Rarity-Green", "稀有度-绿色" }, - { "Rarity-Orange", "稀有度-橙色" }, - { "Rarity-LightRed", "稀有度-浅红色" }, - { "Rarity-Pink", "稀有度-粉红色" }, - { "Rarity-LightPurple", "稀有度-浅紫色" }, - { "Rarity-Lime", "稀有度-青柠色" }, - { "Rarity-Yellow", "稀有度-黄色" }, - { "Rarity-Cyan", "稀有度-青色" }, - { "Rarity-Red", "稀有度-红色" }, - { "Rarity-Purple", "稀有度-紫色" }, - { "Rarity-Rainbow", "稀有度-彩虹色" }, - { "Rarity-Amber", "稀有度-琥珀色" }, - { "Equipable", "可装备" }, - { "Armor", "盔甲" }, - { "Vanity", "时装" }, - { "Accessory", "配饰" }, - { "Dye", "染料" }, - { "Ammo", "弹药" }, - { "Bait", "鱼饵" }, - { "Money", "钱币" }, - { "Bag", "宝藏袋" }, - { "Tool", "工具" }, - { "Weapon", "武器" }, - { "Consumable", "消耗品" }, - { "Material", "材料" }, - { "Potion", "药水" }, - { "Tile", "图格" }, - { "Wall", "墙" }, - } - }, - //{ Terraria.Localization.GameCulture.OtherCulture, new Dictionary - // { - // { "Any", "" }, - // { "Rarity-Gray", "" }, - // { "Rarity-White", "" }, - // { "Rarity-Blue", "" }, - // { "Rarity-Green", "" }, - // { "Rarity-Orange", "" }, - // { "Rarity-LightRed", "" }, - // { "Rarity-Pink", "" }, - // { "Rarity-LightPurple", "" }, - // { "Rarity-Lime", "" }, - // { "Rarity-Yellow", "" }, - // { "Rarity-Cyan", "" }, - // { "Rarity-Red", "" }, - // { "Rarity-Purple", "" }, - // { "Rarity-Rainbow", "" }, - // { "Rarity-Amber", "" }, - // { "Equipable", "" }, - // { "Armor", "" }, - // { "Vanity", "" }, - // { "Accessory", "" }, - // { "Dye", "" }, - // { "Ammo", "" }, - // { "Bait", "" }, - // { "Money", "" }, - // { "Bag", "" }, - // { "Tool", "" }, - // { "Weapon", "" }, - // { "Consumable", "" }, - // { "Material", "" }, - // { "Potion", "" }, - // { "Tile", "" }, - // { "Wall", "" }, - // } - //} - }; + private void LoadBagFilter() { Bags = new HashSet(); diff --git a/Tiles/TransferGateTile.cs b/Tiles/TransferGateTile.cs index 715c823..52d148d 100644 --- a/Tiles/TransferGateTile.cs +++ b/Tiles/TransferGateTile.cs @@ -54,10 +54,6 @@ public override void PostLoad() SimplePlaceableItem i = new SimplePlaceableItem(); i.placeType = Type; mod.AddItem("TransferGateItem", i); - i.DisplayName.AddTranslation(LangID.English, "Transfer gate"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物流管道阀门"); - i.Tooltip.AddTranslation(LangID.English, "Place in line with Transfer pipe to toggle the item flow with wire"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "将其放置在物流管道中使用电信号控制管道通路"); placeItems[0] = i; } diff --git a/Tiles/TransferInjectorTile.cs b/Tiles/TransferInjectorTile.cs index 3dc9e84..d0632e6 100644 --- a/Tiles/TransferInjectorTile.cs +++ b/Tiles/TransferInjectorTile.cs @@ -52,10 +52,6 @@ public override void PostLoad() SimplePlaceableItem i = new SimplePlaceableItem(); i.placeType = Type; mod.AddItem("TransferInjectorItem", i); - i.DisplayName.AddTranslation(LangID.English, "Transfer Injector"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物品注入器"); - i.Tooltip.AddTranslation(LangID.English, "Injects items into adjacent chests"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "将物品放入相邻的容器中\n它也可以被用在提取器上用于自动提取"); placeItems[0] = i; } diff --git a/Tiles/TransferInletTile.cs b/Tiles/TransferInletTile.cs index 705aeba..e6fc4ec 100644 --- a/Tiles/TransferInletTile.cs +++ b/Tiles/TransferInletTile.cs @@ -50,10 +50,6 @@ public override void PostLoad() SimplePlaceableItem i = new SimplePlaceableItem(); i.placeType = Type; mod.AddItem("TransferInletItem", i); - i.DisplayName.AddTranslation(LangID.English, "Transfer inlet"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物品拾取口"); - i.Tooltip.AddTranslation(LangID.English, "Picks up dropped items"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "拾取掉落在上方的物品"); placeItems[0] = i; } diff --git a/Tiles/TransferOutletTile.cs b/Tiles/TransferOutletTile.cs index 8631416..1a07efc 100644 --- a/Tiles/TransferOutletTile.cs +++ b/Tiles/TransferOutletTile.cs @@ -54,10 +54,6 @@ public override void PostLoad() SimplePlaceableItem i = new SimplePlaceableItem(); i.placeType = Type; mod.AddItem("TransferOutletItem", i); - i.DisplayName.AddTranslation(LangID.English, "Transfer outlet"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物品丢弃口"); - i.Tooltip.AddTranslation(LangID.English, "Drops item"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "抛出物品"); placeItems[0] = i; } diff --git a/Tiles/TransferPipeTile.cs b/Tiles/TransferPipeTile.cs index 6f679a2..bd5644b 100644 --- a/Tiles/TransferPipeTile.cs +++ b/Tiles/TransferPipeTile.cs @@ -68,10 +68,6 @@ public override void PostLoad() SimplePlaceableItem i = new SimplePlaceableItem(); i.placeType = Type; mod.AddItem("TransferPipeItem", i); - i.DisplayName.AddTranslation(LangID.English, "Transfer pipe"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物流管道"); - i.Tooltip.AddTranslation(LangID.English, "Used to connect item transfer devices"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "用来连接物流设备和传输物品"); placeItems[0] = i; } diff --git a/Tiles/TransferRelayTile.cs b/Tiles/TransferRelayTile.cs index d30000b..18c8eef 100644 --- a/Tiles/TransferRelayTile.cs +++ b/Tiles/TransferRelayTile.cs @@ -68,10 +68,6 @@ public override void PostLoad() SimplePlaceableItem i = new SimplePlaceableItem(); i.placeType = Type; mod.AddItem("TransferRelayItem", i); - i.DisplayName.AddTranslation(LangID.English, "Transfer relay"); - i.DisplayName.AddTranslation(Terraria.Localization.GameCulture.Chinese, "物流中继器"); - i.Tooltip.AddTranslation(LangID.English, "Receives items, and sends them out again"); - i.Tooltip.AddTranslation(Terraria.Localization.GameCulture.Chinese, "接收物品,然后再将其发送出去"); placeItems[0] = i; } From cb72f572e12e869485ee91cbf23715b02a5d8e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Tue, 29 Jan 2019 16:16:22 +0100 Subject: [PATCH 05/33] Cleanup --- LangUtils.cs | 13 ++++--------- Tiles/MagicStorageInterfaceTile.cs | 1 - Tiles/TransferFilterTile.cs | 1 - 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/LangUtils.cs b/LangUtils.cs index 35d57e7..26f5304 100644 --- a/LangUtils.cs +++ b/LangUtils.cs @@ -1,15 +1,10 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Terraria; -using Terraria.Localization; -using Terraria.ModLoader; +using System.Collections.Generic; using System.Reflection; +using Terraria.ModLoader; namespace MechTransfer { - static class LangUtils + internal static class LangUtils { public static ModTranslation GetModTranslation(this Mod mod, string key) { @@ -28,4 +23,4 @@ public static void SwapTranslation(this ModTranslation target, ModTranslation so } } } -} +} \ No newline at end of file diff --git a/Tiles/MagicStorageInterfaceTile.cs b/Tiles/MagicStorageInterfaceTile.cs index fc4f00c..a96c100 100644 --- a/Tiles/MagicStorageInterfaceTile.cs +++ b/Tiles/MagicStorageInterfaceTile.cs @@ -3,7 +3,6 @@ using Microsoft.Xna.Framework; using Terraria.DataStructures; using Terraria.Enums; -using Terraria.ID; using Terraria.ObjectData; namespace MechTransfer.Tiles diff --git a/Tiles/TransferFilterTile.cs b/Tiles/TransferFilterTile.cs index 823ab82..0e0ac6f 100644 --- a/Tiles/TransferFilterTile.cs +++ b/Tiles/TransferFilterTile.cs @@ -5,7 +5,6 @@ using Terraria.DataStructures; using Terraria.Enums; using Terraria.ID; -using Terraria.Localization; using Terraria.ModLoader; using Terraria.ObjectData; From 725975397b6981106ba6f42eabcbf6f816fce461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Tue, 29 Jan 2019 16:17:28 +0100 Subject: [PATCH 06/33] Fixed Dye easter egg not showing --- Tiles/TransferFilterTile.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Tiles/TransferFilterTile.cs b/Tiles/TransferFilterTile.cs index 0e0ac6f..6453253 100644 --- a/Tiles/TransferFilterTile.cs +++ b/Tiles/TransferFilterTile.cs @@ -163,6 +163,7 @@ private void LoadFilters() createFilter("Armor", ItemID.WoodBreastplate, x => ((x.headSlot >= 0 || x.bodySlot >= 0 || x.legSlot >= 0) && !x.vanity)); createFilter("Vanity", ItemID.FamiliarWig, x => (x.vanity)); createFilter("Accessory", ItemID.Shackle, x => (x.accessory)); + Main.checkHalloween(); createFilter("Dye", ItemID.SilverDye, x => (x.dye > 0)); createFilter("Ammo", ItemID.MusketBall, x => x.ammo != 0); From 1b44e2d279d3b1173ccb9cf6f8959d7b1b4fecf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sat, 16 Feb 2019 16:29:21 +0100 Subject: [PATCH 07/33] Fixed extraction of modded items with multiple results --- ContainerAdapters/ExtractinatorAdapter.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ContainerAdapters/ExtractinatorAdapter.cs b/ContainerAdapters/ExtractinatorAdapter.cs index c622a3b..75ccbc9 100644 --- a/ContainerAdapters/ExtractinatorAdapter.cs +++ b/ContainerAdapters/ExtractinatorAdapter.cs @@ -345,11 +345,21 @@ public void Extract(int x, int y, int extractType) num5 += Main.rand.Next(0, 6); } } + + int tempTargetX = Player.tileTargetX; + Player.tileTargetX = x; + + int tempTargetY = Player.tileTargetY; + Player.tileTargetY = y; + ItemLoader.ExtractinatorUse(ref num6, ref num5, extractType); if (num6 > 0) { Item.NewItem(x * 16, y * 16, 1, 1, num6, num5, false, -1, false, false); } + + Player.tileTargetX = tempTargetX; + Player.tileTargetY = tempTargetY; } public bool InjectItem(int x, int y, Item item) From 43e789951ac0292a1e1b623f018c3adff5f384d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sat, 16 Feb 2019 17:52:39 +0100 Subject: [PATCH 08/33] Added paperwork --- .gitattributes | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ LICENSE | 21 +++++++++++++++++ README.md | 22 ++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 .gitattributes create mode 100644 LICENSE create mode 100644 README.md diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..de407ce --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Vince Kálmán + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..ac8eb81 --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# MechTransfer + +MechTransfer is a small mod, that adds various wire controlled devices to interact with items and move them between containers. + +The mod contains the following features: +- Transferring items from one chest to another +- Dropping and picking up items +- Item sorting and detection +- Automatic crafting + +For more information visit the Terraria Community Forums: [MechTransfer - Item translocation and more...](https://forums.terraria.org/index.php?threads/mechtransfer-item-translocation-and-more.60571/) + +# Cross Mod Support + +MechTransfer supports all standard chests from any mod. If your mod has a custom item storage solution, you can use MechTransfer's Mod.Call() based API to set up an adapter for it. +The complete API documentation is available [here](https://github.com/DRKV333/MechTransfer/wiki/Adapter-extensibility). + +Currently supported mods: +- [Portable Storage](https://forums.terraria.org/index.php?threads/portable-storage.65161/) +- [Magic Storage](https://forums.terraria.org/index.php?threads/magic-storage.56294/) (Support built into MechTransfer) + + From 7fbbccf558ae232c74c9a68e23673a00063cb600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Wed, 20 Mar 2019 18:30:13 +0100 Subject: [PATCH 09/33] Added localization support for hover UI --- Localization/en-US.lang | 5 +++++ Tiles/FilterableTile.cs | 3 ++- Tiles/TransferFilterTile.cs | 5 +++-- UI/FilterHoverUI.cs | 9 ++++++--- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Localization/en-US.lang b/Localization/en-US.lang index b43a03c..ab44e94 100644 --- a/Localization/en-US.lang +++ b/Localization/en-US.lang @@ -1,3 +1,6 @@ +UI.Hover.NotSet = Not set +UI.Hover.Generic = Filter: + ItemName.PneumaticActuatorItem = Pneumatic actuator ItemTooltip.PneumaticActuatorItem = Used to craft item transfer devices @@ -25,8 +28,10 @@ ItemTooltip.TransferInletItem = Picks up dropped items ItemName.TransferFilterItem = Transfer filter (whitelist) ItemTooltip.TransferFilterItem = Place in line with Transfer pipe\nRight click with item in hand to set filter +UI.Hover.TransferFilterItem = Item allowed: ItemName.InverseTransferFilterItem = Transfer filter (blacklist) ItemTooltip.InverseTransferFilterItem = Place in line with Transfer pipe\nRight click with item in hand to set filter +UI.Hover.InverseTransferFilterItem = Item restricted: ItemName.TransferGateItem = Transfer gate ItemTooltip.TransferGateItem = Place in line with Transfer pipe to toggle the item flow with wire diff --git a/Tiles/FilterableTile.cs b/Tiles/FilterableTile.cs index a6e28df..155dae6 100644 --- a/Tiles/FilterableTile.cs +++ b/Tiles/FilterableTile.cs @@ -1,6 +1,7 @@ using MechTransfer.Tiles.Simple; using Microsoft.Xna.Framework; using Terraria; +using Terraria.Localization; namespace MechTransfer.Tiles { @@ -40,7 +41,7 @@ public virtual void DisplayTooltip(int i, int j) public virtual string HoverText(T entity) { - return "Filter:"; + return Language.GetTextValue("Mods.MechTransfer.UI.Hover.Generic"); } public virtual Color HoverColor(T entity) diff --git a/Tiles/TransferFilterTile.cs b/Tiles/TransferFilterTile.cs index 6453253..a5fe4d4 100644 --- a/Tiles/TransferFilterTile.cs +++ b/Tiles/TransferFilterTile.cs @@ -5,6 +5,7 @@ using Terraria.DataStructures; using Terraria.Enums; using Terraria.ID; +using Terraria.Localization; using Terraria.ModLoader; using Terraria.ObjectData; @@ -61,9 +62,9 @@ public override string HoverText(TransferFilterTileEntity entity) { Tile tile = Main.tile[entity.Position.X, entity.Position.Y]; if (tile.frameY == 0) - return "Item allowed:"; + return Language.GetTextValue("Mods.MechTransfer.UI.Hover.TransferFilterItem"); else - return "Item restricted:"; + return Language.GetTextValue("Mods.MechTransfer.UI.Hover.InverseTransferFilterItem"); } public override int GetDropKind(int Fx, int Fy) diff --git a/UI/FilterHoverUI.cs b/UI/FilterHoverUI.cs index 620ca50..5c27353 100644 --- a/UI/FilterHoverUI.cs +++ b/UI/FilterHoverUI.cs @@ -4,6 +4,7 @@ using Terraria.GameContent.UI; using Terraria.GameContent.UI.Elements; using Terraria.UI; +using Terraria.Localization; namespace MechTransfer.UI { @@ -16,11 +17,13 @@ public class FilterHoverUI : UIState private UIText titleText; private Item[] fakeInv = new Item[11]; + private const string NotSetTextKey = "Mods.MechTransfer.UI.Hover.NotSet"; + public override void OnInitialize() { fakeInv[10] = new Item(); - titleText = new UIText("Not set"); + titleText = new UIText(Language.GetTextValue(NotSetTextKey)); titleText.Left.Set(5, 0); titleText.Top.Set(5, 0); Append(titleText); @@ -31,7 +34,7 @@ public override void OnInitialize() panel.Width.Set(200, 0); panel.Height.Set(Main.inventoryBackTexture.Height * 0.5f * Main.UIScale + 10, 0); - itemText = new UIText("N/A"); + itemText = new UIText(Language.GetTextValue(NotSetTextKey)); itemText.Left.Set(Main.inventoryBackTexture.Width * 0.5f * Main.UIScale, 0); itemText.Top.Set(0, 0); panel.Append(itemText); @@ -47,7 +50,7 @@ public void Display(Item type, string text, Color textColor) titleText.TextColor = textColor; fakeInv[10] = type; - itemText.SetText(type.IsAir ? "Not set" : fakeInv[10].Name); + itemText.SetText(type.IsAir ? Language.GetTextValue(NotSetTextKey) : fakeInv[10].Name); itemText.TextColor = type.IsAir ? Color.Red : ItemRarity.GetColor(fakeInv[10].rare); panel.Width.Pixels = itemText.MinWidth.Pixels + Main.inventoryBackTexture.Width * 0.5f * Main.UIScale + 20; From b8149fe2628b38050bfddbf0342dc8c07c3f6c38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Wed, 20 Mar 2019 18:44:56 +0100 Subject: [PATCH 10/33] Updated to .targets build system --- MechTransfer.csproj | 22 ++++------------------ build.txt | 2 +- tmodloader.targets | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 19 deletions(-) create mode 100644 tmodloader.targets diff --git a/MechTransfer.csproj b/MechTransfer.csproj index 32b7cef..0b2e4a1 100644 --- a/MechTransfer.csproj +++ b/MechTransfer.csproj @@ -87,23 +87,7 @@ - C:\Users\kwinc\Documents\My Games\Terraria\ModLoader\Mods\MagicStorage.All.dll - - - False - C:\Windows\Microsoft.NET\assembly\GAC_32\Microsoft.Xna.Framework\v4.0_4.0.0.0__842cf8be1de50553\Microsoft.Xna.Framework.dll - - - False - C:\Windows\Microsoft.NET\assembly\GAC_32\Microsoft.Xna.Framework.Game\v4.0_4.0.0.0__842cf8be1de50553\Microsoft.Xna.Framework.Game.dll - - - False - C:\Windows\Microsoft.NET\assembly\GAC_32\Microsoft.Xna.Framework.Graphics\v4.0_4.0.0.0__842cf8be1de50553\Microsoft.Xna.Framework.Graphics.dll - - - False - C:\Windows\Microsoft.NET\assembly\GAC_32\Microsoft.Xna.Framework.Xact\v4.0_4.0.0.0__842cf8be1de50553\Microsoft.Xna.Framework.Xact.dll + $(userprofile)\Documents\My Games\Terraria\ModLoader\Mods\MagicStorage.All.dll @@ -111,8 +95,10 @@ + - "D:\SteamLibrary\steamapps\common\Terraria\tModLoaderServer.exe" -build "$(ProjectDir)\" -eac "$(TargetPath)" + + diff --git a/build.txt b/build.txt index 7abe9bb..ce97378 100644 --- a/build.txt +++ b/build.txt @@ -3,7 +3,7 @@ version = 1.6.2 displayName = MechTransfer includePDB = false weakReferences = MagicStorage@0.4.3.1 -buildIgnore = .gitignore, description.txt, *.csproj*, *.sln, .git/*, .vs/*, bin/*, obj/*, *.xcf +buildIgnore = .gitignore, .gitattributes, *.csproj*, *.sln, *.targets, .git/*, .vs/*, bin/*, obj/*, *.xcf, lib/ReLogic.dll hideCode = false hideResources = false includeSource = true diff --git a/tmodloader.targets b/tmodloader.targets new file mode 100644 index 0000000..1e85b29 --- /dev/null +++ b/tmodloader.targets @@ -0,0 +1,40 @@ + + + + + + + + + $(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\re-logic\terraria@install_path) + + + + + + + + + + + + $(tmodTerrariaPath)\Terraria.exe + + + + + + + $(BuildDependsOn); + tmodBuildModFile + + + + + + + + + \ No newline at end of file From 071067202f71b2b4e43970ad442df926d55bdb4a Mon Sep 17 00:00:00 2001 From: VedTerrarian <49706867+VedTerrarian@users.noreply.github.com> Date: Wed, 17 Apr 2019 16:01:57 +1100 Subject: [PATCH 11/33] Add files via upload --- ru-RU.lang | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 ru-RU.lang diff --git a/ru-RU.lang b/ru-RU.lang new file mode 100644 index 0000000..dc76dcd --- /dev/null +++ b/ru-RU.lang @@ -0,0 +1,86 @@ +ItemName.PneumaticActuatorItem = Пневматический привод +ItemTooltip.PneumaticActuatorItem = Используется в крафте устройств для перемещения предметов + +ItemName.BigButtonItem = Большая кнопка +ItemName.SmallButtonItem = Маленькая кнопка + +ItemName.OmniTurretItem = Всенаправленная турель +ItemTooltip.OmniTurretItem = Стреляет любыми боеприпасами +ItemName.SuperOmniTurretItem = Ускоренная всенаправленная турель +ItemTooltip.SuperOmniTurretItem = Стреляет любыми боеприпасами +ItemName.MatterProjectorItem = Материальный проэктор +ItemTooltip.MatterProjectorItem = Стреляет любыми боеприпасами очень, очень быстро + +ItemName.TransferPipeItem = Транспортная труба +ItemTooltip.TransferPipeItem = Используется для подключения устройств для перемещения предметов + +ItemName.TransferExtractorItem = Извлекатель предметов +ItemTooltip.TransferExtractorItem = Извлекает предметы из рядом стоящих сундуков + +ItemName.StackExtractorItem = Извлекатель стаков +ItemTooltip.StackExtractorItem = Извлекает целый стак за раз + +ItemName.TransferInletItem = Воронка +ItemTooltip.TransferInletItem = Собирает упавшие вещи + +ItemName.TransferFilterItem = Транспортный фильтр (белый список) +ItemTooltip.TransferFilterItem = Поставьте в транспортировочную линию для фильтрации предметов\nПКМ предметом в руке для настройки фильтра +ItemName.InverseTransferFilterItem = Транспортный фильтр (чёрный список) +ItemTooltip.InverseTransferFilterItem = Поставьте в транспортировочную линию для фильтрации предметов\nПКМ предметом в руке для настройки фильтра + +ItemName.TransferGateItem = Транспортный люк +ItemTooltip.TransferGateItem = Поставьте в транспортировочную линию для перекрытия перемещения претметов + +ItemName.TransferRelayItem = Транспортное реле +ItemTooltip.TransferRelayItem = Передаёт предметы в одном направлении + +ItemName.TransferInjectoinjectorrItem = Транспортный инжектор +ItemTooltip.TransferInjectorItem = Передаёт предметы в рядом стоящие сундуки + +ItemName.TransferOutletItem = Транспортный выбрасыватель +ItemTooltip.TransferOutletItem = Выбрасывает предметы в мир + +ItemName.MagicStorageInterfaceItem = Интерфейс для магического хранилища +ItemTooltip.MagicStorageInterfaceItem = Позволяет взаимодействовать с магическим хранилищем + +ItemName.PlayerInterfaceItem = Интерфейс игрока +ItemTooltip.PlayerInterfaceItem = Позволяет взаимодействовать с инвентарём игрока + +ItemName.TransferAssemblerItem = Сборщик +ItemTooltip.TransferAssemblerItem = Работа в прогрессе\nАвтоматически создаёт вещи\nПКМ предметом в руке для настройки фильтра + +Common.ItemName.FilterItem = Предметный фильтр +Common.ItemTooltip.FilterItem = Используется в транспортном фильтре +ItemName.AnyFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Все) +ItemName.Rarity-GrayFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Серая) +ItemName.Rarity-WhiteFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Белая) +ItemName.Rarity-BlueFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Синяя) +ItemName.Rarity-GreenFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Зеленая) +ItemName.Rarity-OrangeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Оранжевая) +ItemName.Rarity-LightRedFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Светло-красная) +ItemName.Rarity-PinkFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Розовая) +ItemName.Rarity-LightPurpleFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Светло-фиолетовая) +ItemName.Rarity-LimeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Лаймовая) +ItemName.Rarity-YellowFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Желтая) +ItemName.Rarity-CyanFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Бирюзовая) +ItemName.Rarity-RedFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Красная) +ItemName.Rarity-PurpleFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Фиолетовая) +ItemName.Rarity-RainbowFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Радужная) +ItemName.Rarity-AmberFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Редкость: Янтарная) +ItemName.EquipableFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Надевается) +ItemName.ArmorFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Броня) +ItemName.VanityFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Украшения) +ItemName.AccessoryFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Аксессуары) +ItemName.DyeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Красители) +EasterEgg.ItemName.DyeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Die) +ItemName.AmmoFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Боеприпасы) +ItemName.BaitFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Наживка) +ItemName.MoneyFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Монеты) +ItemName.BagFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Мешки с сокровищами) +ItemName.ToolFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Инструмент) +ItemName.WeaponFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Оружие) +ItemName.ConsumableFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Расходуется) +ItemName.MaterialFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Материал) +ItemName.PotionFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Зелье) +ItemName.TileFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Блок) +ItemName.WallFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Стена) \ No newline at end of file From f7a24410ebc4b981283d2a4cda7585d1a26cc3a8 Mon Sep 17 00:00:00 2001 From: VedTerrarian <49706867+VedTerrarian@users.noreply.github.com> Date: Wed, 17 Apr 2019 16:18:15 +1100 Subject: [PATCH 12/33] Update ru-RU.lang --- ru-RU.lang | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ru-RU.lang b/ru-RU.lang index dc76dcd..a54fb0f 100644 --- a/ru-RU.lang +++ b/ru-RU.lang @@ -34,7 +34,7 @@ ItemTooltip.TransferGateItem = Поставьте в транспортиров ItemName.TransferRelayItem = Транспортное реле ItemTooltip.TransferRelayItem = Передаёт предметы в одном направлении -ItemName.TransferInjectoinjectorrItem = Транспортный инжектор +ItemName.TransferInjectorItem = Транспортный инжектор ItemTooltip.TransferInjectorItem = Передаёт предметы в рядом стоящие сундуки ItemName.TransferOutletItem = Транспортный выбрасыватель @@ -83,4 +83,4 @@ ItemName.ConsumableFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} ItemName.MaterialFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Материал) ItemName.PotionFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Зелье) ItemName.TileFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Блок) -ItemName.WallFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Стена) \ No newline at end of file +ItemName.WallFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Стена) From 0dea5eba4aaf89865c91e9af86242a624ff8945e Mon Sep 17 00:00:00 2001 From: DRKV333 <30904009+DRKV333@users.noreply.github.com> Date: Wed, 17 Apr 2019 11:23:10 +0200 Subject: [PATCH 13/33] Moved Russian translation to Localization folder --- ru-RU.lang => Localization/ru-RU.lang | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ru-RU.lang => Localization/ru-RU.lang (100%) diff --git a/ru-RU.lang b/Localization/ru-RU.lang similarity index 100% rename from ru-RU.lang rename to Localization/ru-RU.lang From cbdf4f27bc36e2e59b36c583d26d24e414333609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sat, 25 May 2019 22:54:32 +0200 Subject: [PATCH 14/33] Added incremental build support for tmodloader.targets --- tmodloader.targets | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/tmodloader.targets b/tmodloader.targets index 1e85b29..84e50de 100644 --- a/tmodloader.targets +++ b/tmodloader.targets @@ -1,7 +1,7 @@ @@ -9,6 +9,9 @@ $(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\re-logic\terraria@install_path) + + + $(ProjectDir)build.txt @@ -24,6 +27,35 @@ + + + + + + + + + + + + + + x.StartsWith("buildIgnore")); + if (line != null) + ignores = new Regex("^(" + Regex.Escape(line.Replace("buildIgnore", "").Replace("=", "").Replace(" ", "")).Replace("\\?", ".").Replace("\\*", ".*").Replace(",", "|") + ")$"); +} +IEnumerable filePaths = Directory.GetFiles(ProjectPath); +if (ignores != null) + filePaths = filePaths.Where(x => !ignores.IsMatch(x.Replace(ProjectPath, "").Replace("\\", "/"))); +Files = filePaths.Select(x => new TaskItem(x)).ToArray(); + ]]> + + + @@ -32,8 +64,15 @@ + + + + + + + - + From f16befffa8e72c3153fd2f8ba18b745a9252c9f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Tue, 28 May 2019 21:58:19 +0200 Subject: [PATCH 15/33] Fixed build of files in subdirectories --- tmodloader.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmodloader.targets b/tmodloader.targets index 84e50de..4b50738 100644 --- a/tmodloader.targets +++ b/tmodloader.targets @@ -48,7 +48,7 @@ if (File.Exists(BuildTxtPath)) if (line != null) ignores = new Regex("^(" + Regex.Escape(line.Replace("buildIgnore", "").Replace("=", "").Replace(" ", "")).Replace("\\?", ".").Replace("\\*", ".*").Replace(",", "|") + ")$"); } -IEnumerable filePaths = Directory.GetFiles(ProjectPath); +IEnumerable filePaths = Directory.GetFiles(ProjectPath, "*.*", SearchOption.AllDirectories); if (ignores != null) filePaths = filePaths.Where(x => !ignores.IsMatch(x.Replace(ProjectPath, "").Replace("\\", "/"))); Files = filePaths.Select(x => new TaskItem(x)).ToArray(); From 04911f5ff291c45d8976d37e9c26329e7fbae95c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Tue, 28 May 2019 23:05:10 +0200 Subject: [PATCH 16/33] Fixed msbuild sometimes not running in VS --- tmodloader.targets | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tmodloader.targets b/tmodloader.targets index 4b50738..13d1ef6 100644 --- a/tmodloader.targets +++ b/tmodloader.targets @@ -5,8 +5,11 @@ ============================================================================================== --> - + + + true + $(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\re-logic\terraria@install_path) From 31baeb4bbe27e37289d2c8f8299453407fd5dedc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Fri, 21 Jun 2019 20:42:57 +0200 Subject: [PATCH 17/33] Added link to targets build system forum post --- tmodloader.targets | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tmodloader.targets b/tmodloader.targets index 13d1ef6..c46965d 100644 --- a/tmodloader.targets +++ b/tmodloader.targets @@ -1,8 +1,10 @@ - + For more information visit: + https://forums.terraria.org/index.php?threads/guide-better-system-for-building-mods-with-visual-studio-msbuild.80009/ + =========================================================================================================================== --> From 8a1aeeb0a8171d3543716b31daa449c4e9f464ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Fri, 21 Jun 2019 20:44:53 +0200 Subject: [PATCH 18/33] The respritening... --- Content/MagicStorageInterfaceTile.png | Bin 0 -> 702 bytes Content/MagicStorageInterfaceTile.xcf | Bin 0 -> 2865 bytes Content/MechTransfer.gpl | 20 ++++ Content/OmniTurretTile.png | Bin 0 -> 1032 bytes Content/OmniTurretTile.xcf | Bin 0 -> 14799 bytes Content/PlayerInterfaceItem.png | Bin 0 -> 267 bytes Content/PlayerInterfaceTile.png | Bin 0 -> 481 bytes Content/PlayerInterfaceTile.xcf | Bin 0 -> 3292 bytes Content/PneumaticActuatorItem.png | Bin 0 -> 249 bytes Content/StackExtractorTile.png | Bin 0 -> 1460 bytes Content/TransferAssemblerTile.png | Bin 0 -> 225 bytes Content/TransferExtractorTile.png | Bin 0 -> 1322 bytes Content/TransferFilterTile.png | Bin 0 -> 5779 bytes Content/TransferGateTile.png | Bin 0 -> 5727 bytes Content/TransferInjectorTile.png | Bin 0 -> 1416 bytes Content/TransferInletItem.png | Bin 0 -> 199 bytes Content/TransferInletTile.png | Bin 0 -> 303 bytes Content/TransferOutletTile.png | Bin 0 -> 231 bytes Content/TransferPipeTile.png | Bin 0 -> 6135 bytes Content/TransferRelayTile.png | Bin 0 -> 318 bytes Content/Transitions.png | Bin 0 -> 5191 bytes Content/content.json | 97 +++++++++++++++++++ Items/InverseTransferFilterItem.png | Bin 1163 -> 190 bytes Items/MagicStorageInterfaceItem.png | Bin 1084 -> 573 bytes Items/MatterProjectorItem.png | Bin 1361 -> 968 bytes Items/OmniTurretItem.png | Bin 1031 -> 999 bytes Items/PlayerInterfaceItem.png | Bin 553 -> 235 bytes Items/PneumaticActuatorItem.png | Bin 646 -> 215 bytes Items/SimplePlaceableItem.cs | 13 ++- Items/StackExtractorItem.png | Bin 1243 -> 192 bytes Items/SuperOmniTurretItem.png | Bin 1193 -> 1011 bytes Items/TransferAssemblerItem.png | Bin 1344 -> 191 bytes Items/TransferExtractorItem.png | Bin 1399 -> 189 bytes Items/TransferFilterItem.png | Bin 1384 -> 189 bytes Items/TransferGateItem.png | Bin 1244 -> 190 bytes Items/TransferInjectorItem.png | Bin 1449 -> 195 bytes Items/TransferInletItem.png | Bin 1250 -> 195 bytes Items/TransferOutletItem.png | Bin 1218 -> 187 bytes Items/TransferPipeItem.png | Bin 324 -> 173 bytes Items/TransferRelayItem.png | Bin 1352 -> 947 bytes MechTransfer.csproj | 1 + Tiles/MagicStorageInterfaceTile.png | Bin 792 -> 710 bytes Tiles/OmniTurretTile.png | Bin 9696 -> 1235 bytes Tiles/PlayerInterfaceTile.png | Bin 1080 -> 494 bytes Tiles/StackExtractorTile.png | Bin 332 -> 192 bytes Tiles/TransferAssemblerTile.png | Bin 299 -> 191 bytes Tiles/TransferExtractorTile.png | Bin 293 -> 189 bytes Tiles/TransferFilterTile.png | Bin 424 -> 225 bytes Tiles/TransferGateTile.png | Bin 395 -> 216 bytes Tiles/TransferInjectorTile.png | Bin 284 -> 195 bytes Tiles/TransferInletTile.png | Bin 475 -> 238 bytes Tiles/TransferOutletTile.png | Bin 273 -> 187 bytes Tiles/TransferPipeTile.png | Bin 832 -> 504 bytes Tiles/TransferRelayTile.png | Bin 572 -> 259 bytes Tiles/Transitions/Bottom.png | Bin 274 -> 174 bytes Tiles/Transitions/Left.png | Bin 279 -> 175 bytes Tiles/Transitions/Right.png | Bin 281 -> 174 bytes Tiles/Transitions/Top.png | Bin 264 -> 167 bytes build.txt | 2 +- processContent.py | 130 ++++++++++++++++++++++++++ processContent.targets | 19 ++++ 61 files changed, 279 insertions(+), 3 deletions(-) create mode 100644 Content/MagicStorageInterfaceTile.png create mode 100644 Content/MagicStorageInterfaceTile.xcf create mode 100644 Content/MechTransfer.gpl create mode 100644 Content/OmniTurretTile.png create mode 100644 Content/OmniTurretTile.xcf create mode 100644 Content/PlayerInterfaceItem.png create mode 100644 Content/PlayerInterfaceTile.png create mode 100644 Content/PlayerInterfaceTile.xcf create mode 100644 Content/PneumaticActuatorItem.png create mode 100644 Content/StackExtractorTile.png create mode 100644 Content/TransferAssemblerTile.png create mode 100644 Content/TransferExtractorTile.png create mode 100644 Content/TransferFilterTile.png create mode 100644 Content/TransferGateTile.png create mode 100644 Content/TransferInjectorTile.png create mode 100644 Content/TransferInletItem.png create mode 100644 Content/TransferInletTile.png create mode 100644 Content/TransferOutletTile.png create mode 100644 Content/TransferPipeTile.png create mode 100644 Content/TransferRelayTile.png create mode 100644 Content/Transitions.png create mode 100644 Content/content.json create mode 100644 processContent.py create mode 100644 processContent.targets diff --git a/Content/MagicStorageInterfaceTile.png b/Content/MagicStorageInterfaceTile.png new file mode 100644 index 0000000000000000000000000000000000000000..230f558008517c5cf86ae23a1e8ae6051ad3e87b GIT binary patch literal 702 zcmV;v0zv(WP)<0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbPI7vi7R5;76ltF6~Q4q&}k=%OelEvmwSo%!SgtvH*>K;NM ziiIG82iwBl1P`KLpmz^`0VzEcddo!wFH(ruK=Dv47Nl#_YJBi0NK#rheuD9^-A&W< zB6Lpk-yDI7y+p@6o={QBIIc z_4D6WF3rf%;jS#!v@9=F#dTc?!%%`CkXImrNDu_#`@V!>D6Z?u@Yg&#DccomK z5kV3`b~+tw?=&Nirqg0^Tu#GWz#X`1z$8m_ma7Y}6m_{SRb>G7) z7RHAiMbU^()>^FuxGrx`pp|0a_0m1;@n0^U%eHp@*X~z}LuJ1kiqP~2wD)Y5f4#&g zk+qh&YK@&QTUs+tYa1KDydjD5C;xLF*yjk!UkQiY*{CE?LBOT zTNfq)l?FK>h4c@oaHl50sBxV}l^b;iRRMP{VqxsfH~Yi4=QzQaboXHP&3JWtxI>&f+oStE>?FRZ@{5d=KmgUo*M6A=qW95MyD5Bb2?+3tPVKgN8oj2R&Q|))|3CNu&cfOd}XzBs$HS-R@v8rtx?%=$cug>|%E+@6c3!(p}6_*365#U|*3f>Bo7j zXS=#>cMcBdpwqE!y$fWZ12{UOqoae4tq*{V^SWeX^K3ys%d^Q?@3xi-R}2CG#d5$?JDks^g??ogDzwy?S(X@s~J%hv@6mi z^*Dp|bX(OlV|SN!4MWq^HjuswV1J+X_je6V?E@KQR7pb@G(kPfu*pa@ToZBsV%LBP zx&TaLkl+Qk5eLess_6TjWH=DWg3$2eNL8jcKrb5Sn#u`z8D5g6iR#2naiQu}a9TwL zD5%=5w)@2O0YDer+TAXs(1jGbkSe!Yz21<9!(Ojd#?757w5Ag1LSoV?q$pKRh_awu zks`^*39P4DvZ9nK6{?g+Fjt&2(t zCg=h%g+YQB+=d(|AhAPYjnk0X_tz65%)bgsypkeA^lDT*jh+!PCCuY%Ju zDnLQyR=L$9t`7jZ;MVST0k=%Vk!Tw8v?I_A=DSPmHEcPq;PW5@mzO^`!8gSHKF&T_ zSzE)$pYb>8z6$;$pscwF7l#qLujUdS6kv1s0TcZoeCgbMFK*kn*WI6+F=Ad0e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00TTpL_t(Y$L*KTOB+EH$LFok z^Gvd9620s+n}nDj7$oT-co=k%fCz!)CWR14DaAuTu=ExR)vHh_dh;aSDxN(QdMt&~ zW9gyLqklwa-ps6PVpIeVg#?7hzKpZG@3Wu%h7iUWXN)@6h5Y#P&mpiLc7m`g9Flr_ zP}o1X*;8M4g#&x4NDt$^_Iu*bjoJ>3)?^`W_FgcasNb zQ%o$bR(?{PAJg-@hly_0Ffk};CKf&xP7M=YV3?TCY9=xpOGkzY;D!lVXeK&^!xM`vwyBVA&(d)1Q+NDsB!I(1?n&8`N4Lzjh=v=QV(aFIpjwV zU}CFmm}pis6W&H4oaPDl-O_YVw2CuN+|2}7CSZ~Ym%q|XBzb-O-O=G6G!uQkrkObA zW}Uaq88R`y!x{Fx7AM9NSJid&MDntN}UGBh6y)km`LW0 zCyooPsh;>0v}a5_NuCG;RcdA*s zhY7Wxu=~Z=-RcRu-))|V&U41ZG*8$(0h4*cJbxqg{EaiQmD70wnt7ckuAe{mTX`Mx zMDll~iFqP=ZiV-fGh|}^jdV!-dB2AVF-IDo_tfFHo0;KYSrfItvuy*qq0-M!vfdjpBE!$vbsPjy$nzN+r3t{!cw zwY59tdrPb352mK43C}FjCrAS6OC$?v5~(yaG?Y?0H#c|v`t^l{g-WGTuh;M2zyI22 z9}oQS{Vg=Pj6WjI(Q`-^cO69X=Rdc<;)MJVl8w4K&=Hl-rWywC3d%_pfGSHHYild( z+bC!ApS-lWvbepnT>h}OeY1RZ;q7<1W*}=?TU)HIRH~b`Wz)Jfv9-N(d!@X!al5vB zCY)HUE^XZ2*ep+Eq_SDPu~?p(oXVa$UB2ZGGwH$`<$DSY6#(*>1xFYv&+Kaq?YR3muQ(b;J|Bqv+UxqPe$O za|c}K&6UMWmAWIjU}D86MH=P&g^%#YsvqztoWrJM!g@eAJPTJMu|K z{si(opLslFcy1p56`cp6mpPx}0Uhti>s?2@!#Wbp&D^s5%Afg|X06UHFcG4ISZRrP8r(eiQo0O&yCPyO@*cc)WyJ$=;W@{3V zL@Sv_Ic`=d(+h`nl^8KUQ>e$N=;mj2eVx7muDW#%Z>(5araidSG*QIhO%Bd%K+819 zhLovK4Qz4-iVc(j?xx*XjbOdNM$`lts1fhD8@M!LjSmE52)7q1ISpZqd?OlD78&^Gw|Yr%YyBbD4X1XP_)60F16uac4dN{E7@2? zh`lSYQQ26oU|U9H^OlB5IM~v=FciY(gR#Kgp+ZtWbT_UAthZlY0!K#9pR6hJE@ zH~}SB3@0E$Yzd7OIXg`IWU)Zr;kXa0n(oBc`5 zo-gwk*e$XFvrm)^R_R4|KW1t?}d~J^4W9(`MM!ZIV1DBgosi zvDjXog*{F8Zc`?l=b|)^rtF1`b7H#yn|E=iFYD=9u>JSV7wXUT`X`*m2)kW~D(CHk zT@D*-UION_W6_X7*tV1{;V8%qv!r@WYjE`=fo%Mvp++QZVOH+}C*SFS!?sUN+K{te z#(%$oGrg20obfLr&FizCV-=2#_%X2o2UG5~?Zx$F<~~bN)F~Ed|B2t;&$p%5QB=I6 z>P8u3(d5oq|j=xsSkzW-ZoiUBhlaQ8;I7&)kr_v$I72ZQ~J=gP|hdc3+Y%qOl zdF}}9+2jeE_JjxDM|&Qj7fJ|LM&N@;xQ;+1;tGUe^w9N4*a%l1;!UnQ43~)j*h32s ztA`dT8ny%io0jCL#v8`T5F(+*!%4_xc(PRLvinwk1m@>QP;+#lz-6nAg3zKv28__~ zaCkt7288f1BjPdP@(~01ny$`!BMJ$4sRu+Z$6lZugJlS9R!^oQQ}ZhQiI~uqd?I1| zmgKlh{O$+`DiV&sKV%+o5e0De6z4ae8Ce?;$FI}3#S#@uR9MloY(;~(<~s;b97M*7 z4wH+ro64>-9BIZM!bKcWG=hFbhtLjTacZHS+YI6~=E#OG4SX_NSyGn?&U3x5`5Y8= zmlwc$bbm9S3at3@!Sf7iJS-2(GKe?@)(aepO5nkn0=d-u+>db_q^6&e*T`+CMIPpR z{4@tlg`PY0UFccaL$RNq#BZF0=PH71DZan&iVI((l!_S-1t)Zr8#X&lxS zVO$X|^EILfm(?|?xRzMiRj~WI*Ij;Ee#2^qlSlVOZLRGk&85^_D!b{ES`B}B{Z}8b zqxr?9Th+~tyU*TNZ2g7Wd}ki#U#ghLe3{m5#xJOf*MHRXC({trv_*Ejs`!&v6`lJ_ zQ6i60tAEpMA7g)%-uqpye#hTyZTelVe#hVM>q6|W(*8}eeT@B4dhd6+`W=6-wdr@c z`W=72uM2*2aAN5Pigh`zy~gwO`+j>`_$2117a84UZEta%Mo##j>M7tG-B>_!@p!&%@FSdNtU=qlsM<-=BDPAFgO>bCYGe8D3oWGWGJ|M`UZqI@`(c#1$w$T zhHzX@P7p{*NDyI2I_h@N&6SNU(RrePV=^O~BI85{wnRpSB$h&nmLsmRms=(rb#-EC zajXdpXWXzOVFiQBUge0rGgc&9PSDp-;BaALc=MJsB}YXn252~gr>mdKI;Vst06Bn4 A_5c6? literal 0 HcmV?d00001 diff --git a/Content/PlayerInterfaceTile.png b/Content/PlayerInterfaceTile.png new file mode 100644 index 0000000000000000000000000000000000000000..10cad86fe67a05cbd4554f66479d37c453a79816 GIT binary patch literal 481 zcmeAS@N?(olHy`uVBq!ia0vp^DnKm5!VDyTvomA^DfIxK5LX~AA|mpi;eS+Al&-F> zr>Ccdg#}R71tbCYGe8D3oWGWGJ|M`UZqI z@`(ctmiBaU4AD4WJJB%jumO*&=lq8FO|O?szOmGEvg=DurY}rRehLaF-sxs9I~Te6 zsleWN&6{~`VxkGnbwB?97FOD{_?wAKj{%?AT7^3ezx|JP-1_^=rlS1A^x1MtPxarp zBfinm$|bkhG56WqO_SS}92Rqz{-LrYe&eglZnttW{6!{keF}VA>=e>7Cuzltr`HwF zEqgTSsq3K>5$Ah7b9t8;OkwA;o#Z=FEi}$Se@<7STeaQ(Q$O5i_OdLUbo8Sfhy7l+ zEg>=4*A{E-zx%=e>Z(oCo1SmY4&~*xofS zzby0K#N)2wD~?sw-aF{MU&`yxW%rxYcHRB0xY4V+h$V!DeZi5#e=q)%X3;lI@7;FU Q3K*6Qp00i_>zopr0GLv|M*si- literal 0 HcmV?d00001 diff --git a/Content/PlayerInterfaceTile.xcf b/Content/PlayerInterfaceTile.xcf new file mode 100644 index 0000000000000000000000000000000000000000..a7aed0e533af1d440a5a24e2b7c37e1895af52fd GIT binary patch literal 3292 zcmds2OK)366h3$E%zZdc(l*YcX@zdVAXlm(=>kO{gw%qN7f4wk7TLLu<5+d<%63Y# zV}rz!6~CZAg9ST&2!EojAH(;}y;I#nSX=5y$KRRro|$v5d;N=N*^ACu_Wa=RP_XKt zyC4Pn9Tb2XplYpFvtmz9PMXbTtJOL>I(jPd4Kxm3J{Eh9jobtUblL(XkA4#&Vbwqy z^f73s;AyuF`)`5kJ(SYyj4m#^!zuPI^R36@ZhP82&3@`n&$I7Z-yc(R!t$myy&810$!O3&yy} zFwZyU&m5CqN=ncA*ESGD$D_$~LJi-ZD+2M!Ea)EjuYblbo)ttnpD!(VfP7fu*+aD9 zs(?J7mH4$1UoG+LC4Lh;^Z6BnVJyaHEBUx}@)isDQHl3$cLTE03jG-=qp$CIu;B+3 z7R&3f4L|q72V&!@ETTBtkRS|Xo`6l{RV)ea!-T0U4KmCs*u@*N3{A|RP!?;FY{(1; zH=&Wh7_pU2kfK_P4ex?HHpH6J9{Pom2rkiD7yi&5?T}kR5o>}Z7efThAM5HJMZbbRE}=W>>$m}jiPfE-J)>j0*u zXv?LI9A9Hak;}9L6(i6Dw^n3hWkJESYG!7b$Yok{VYS;M3-5;E7=oel1Lk~y!ncb1 z$?s+l5;o`C?&S<`9uL}A-ElU$oDTZKF4gbT5SKp$JlbD8V6pt57K0uA?G-?;0~^h} z{6~2WTaDYkBUWjdX>8Q4SdB*2JF?WO;uxz_37jI9g%21sKV}mZ5ap^rYWo`~Bw6AbQR1ARo12 zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvcC0uI{nsjb36?y_UXI6edI!Dyz6L|8sNtnv zf>RiTEM4nLf>8hO-$DQ25DA8y*BDX=28T;7NybGq`;oUZ8@HYJ<9NpRaylOfL>9AM z`eDgC)YpS@{~#|z5|@Jm(Q;&YcVL!b%FB?I<=O4`W#5(wDeCPO z>e3(iW~*^+%~_S;1FOT?iBSy+*HMg9#H~%Bqe`0Vd|8Gr_jITVFiE#;4bE{Qw197u z&6vY>)~SP$A-6bNt24@w5;~jE3pfC3BsXngwh5UwT+5&n!uos5HIX{)N z|B}-!r5kTIonfF`IbC3bvG7we>e7WQ5mK#H?AfE-i-d}EFBrYc@`F&ZI=@HUWDaD&nWSq6nG|Y~g)v8mkK~)q#+YJGk}Nu|PpHQfQ%X6* zX@=#D)foyo7b&*5;!7x6Vo4=ep=ztEzJ{tb)>LzoW*h3bg{CdG)N<#JRO+t#9=i6} zQ_lmbHtcZ2k1%w^k!a+TwMFa0_<%KDtjWgIRMe9-NL3FLJllz%oPjZM48nCXz?MWN zXC|_9GMSs4nIxzRF97K$IgKY{V9<3IKltSCi#bndqrbu%fe85x=4ev)4dxzsd&XMJ z+l$U_49zl}K{XcDr;VLw-_eXxL2cm18KlE@;WY*AX}=*q--%QD!}->bmZt!&^HV^c zehJX6p%;Lj19(uUNBt<;Yd`fv*~Ol_iH9J z?hROagZ3k^^akzYjQ3w3=UNnO#$R;<1y9>G-o&oW3n{JGA>M2^c#~gdTWj7{3^t?T zgJvzy_^g@sQDv!KoZqtaJU8$54EpO1h3#xR%W<<|cO2@d$sLZb^RTinMu)V+=VQI3 zJ&uLDUYs`v%3cLfXJfn6QP#DwG|)It{>I`jYV*(cOEXO(KU-~=P2qv>#zV^fIV`%v z_XBwJ&?Ej59=!{laf=dm8j&yFaCMWlX|95@k_NNY)-+q{-FX zjU>s%0quD;9$gq|?GnG1_kFaWHJ{Ry_MUx--zxc6W%0B;W_8eSl*gfBh?BdHe^tZs$8?+yRr8j6Fz`g@VPxQ^-%=AX#6@Z7HGx5_e0h&GgQ$RZKv6$$8 z#Xbd<#usKC0000UP)t-s0000K6cjBjEjTzhL;wIuNl98-T5A9R5Voo+i-YZI0-FE; z00DGTPE!Ct=GbNc0004EOGiWihy@);00009a7bBm001r{001r{0eGc9b^rhX2XskI zMF-;s2NVq@s}`>_0000PbVXQnLvL+uWo~o;Lvm$dbY)~9cWHEJAV*0}P*;Ht7XSbN zDoI2^R0!8&U=$P-V32T4X=D(oobJdVHc2y(L3EO3B7`g97ShN7QUU;;sR#*ToYC$8 O0000>3p^r=85s1GL71^(seKtxkiEpy*OmP- zo2Y;xL*5TlXP}T|iEBiObAE1aYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI8c$6r;B3< z$Mxg{p!Ep?VPQro0$hcmDFQ|QhA9GN+JPwoY{gTj@=7{*F(giBdG}!RB@v)522WQ% Jmvv4FO#pFLHz@!B literal 0 HcmV?d00001 diff --git a/Content/TransferExtractorTile.png b/Content/TransferExtractorTile.png new file mode 100644 index 0000000000000000000000000000000000000000..0c303ee6bf434027320c0a29c5f7f9326702aada GIT binary patch literal 1322 zcmV+_1=aeAP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+T~VTmg6W4{bv=k1SBCI%K-!D%noMxbHUh2oOG(X zD_=9F$`B!>D_zO9Y5)A)&0n~fl#SC6ee&Moa>*smSVX&DdEUvodEc*Nj~?ab++c_V zvn+kT#U>}1IG&QNM=qdacpWr*W)a3ETagmwpZ88&$t5?-F&{=4j9S)XFK z4`EySJ>P{IS7=TGd-W6??v8B;K4Bf%x`4dZ0km(N#yKs^(B-!|R2i7K35mr$4uk^u zk|bjm+*yz&NZed2?(n}O1zT(^eo#8{`u=){+#JvsdyiBfEBb}}j%hO!dThvrA%D&< z<)k;cxu#zBG@uyF5gAKR10&Q| zQgtTy7}sm?Dqv7&nj-?twhRlPzbM^`OD53*Ma8@~Fon7dAVol+07C)>tS3?OWCODa zL`Y-=K^f3l92d|+s$2n*orniH=mPl0nLtyOm3J{7gdjr28wubBtqHQ6Q`Apz5jB)m z)Tyf1piz@%FMf2G_rZ@RY7P=y(BMM|F{F@9l<1;HA47~W#hf?^p17LOk13{F`TSH8p2_M#^Xc>XJCvSf$%UGATi8? zGaJb{9?T8SY+`hUGC=Aer_x{y47x_Folfp<%&8Io8Qu(t;7>4T26f+H?wPk&tkpbU zbTSzlZ8(x@1>M(4GDrO3jro2y_M3|T0Yg&sDv5cnN^(8KDMLfv-pzt!AUDx@w zf9Q2dFHU#ocWI8@x(8kJ7VmGsGY|NF0MA^Nze?+)G5k_;qajUZnrnRN)LpY$6!D3s zgtdLBd8uQmEu^mPJZ$#LEne^`_UQT{p|9trQr9sP@nNOYMNBQmxpa7O?0M?W_H+iv zweH*YP>X#c3aOb;!+F}Zc^Y365-+ar*?8g>9|X}nB5vWzSWcH5U1u#vXuqbtaekYk zTM68?h@^T!%vm2Za-GSyn_V*(2=a9Sf4}Gvn%MS508h1~?rJuhYe1+c|ApP7@o$n% zvUwlCbLHrh*)q+V7rpsM?Pkz#A89wdvh^eFwm;ZD&~66(_K|iolz;HF-r8x<{LY)= zUD2ECnFoA7fcJlT_kT4@$M+Np)cgw^jRRdMEpe&<000&002ozNm^Q3YXAV(mcJ(e0004WQchCb%707*qoM6N<$f}Va!CIA2c literal 0 HcmV?d00001 diff --git a/Content/TransferFilterTile.png b/Content/TransferFilterTile.png new file mode 100644 index 0000000000000000000000000000000000000000..647526ac6ae3cb49cda007fdfe66f6e1ebf9ff78 GIT binary patch literal 5779 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 RVaxyk002ovPDHLkV1ifP28I9t literal 0 HcmV?d00001 diff --git a/Content/TransferGateTile.png b/Content/TransferGateTile.png new file mode 100644 index 0000000000000000000000000000000000000000..e68d151d0a4633791034eb76a9a1f92ba5f178aa GIT binary patch literal 5727 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 Wng#lb@StV@0000TQBhHzo}QB? zO{%Z2cVS@2W?=X|x9ufR4P!}=UoeBivm0qZ4rhT!WHAGSo-znCRxGtI0}8U2c>21s zKV}mZV%6e(dz%L+Wa{bS7{YNqS)hf9O;K4{IW;xamCdcAfq{AP;su)~F5s9TD3mcz o<&_r0q@XZ1Pe#T7Zf0hNZJSw3bF22`01aU9boFyt=akR{04p3a(EtDd literal 0 HcmV?d00001 diff --git a/Content/TransferInletTile.png b/Content/TransferInletTile.png new file mode 100644 index 0000000000000000000000000000000000000000..92bff2c2fc367b729990f8ac3c4ebeb0ac4d32ab GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^(m>3~!VDx0pLl%(Qi=gSA+A7LL`392!~dwLC{It% z`uh4wlO|bMSm^5NW-~CjFfcsQ54;Uj#8?vK7tG-B>_!@hljQC0!qCAg>jC6&7I;J! zGcf2WgD_*oQu{KXAbW|YuPggwHg;hXA&G>EAX_C%Tq8=H^K)}k^GX<;i&7IyQd1Pl zGfOfQ+&z5*!W;R-fr^qmT^vI=t|tqyFu5v-F&TUIJ}n@O1TaS?83{1OTEqQ) z^mS!_%*HAp&hw>n?PZ{lWQl7;iF1B#Zfaf$gL6@8Vo7R>LV0FMhJw4NZ$Nk>pEyvF zrl*Tz2*>s01fVMt1VZ?PQUr=b0#gJ;6HHPB#1eQ~3RpvXStK327@U4G2Z!1;@B=k5 Nc)I$ztaD0e0sunxHRb>S literal 0 HcmV?d00001 diff --git a/Content/TransferPipeTile.png b/Content/TransferPipeTile.png new file mode 100644 index 0000000000000000000000000000000000000000..9f1ab849e2e255b8059792d40ccd2169c2dacf95 GIT binary patch literal 6135 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 JPDHLkV1hJ~t?B>( literal 0 HcmV?d00001 diff --git a/Content/TransferRelayTile.png b/Content/TransferRelayTile.png new file mode 100644 index 0000000000000000000000000000000000000000..51722326a93ae2d13471bdd09e1cf789cf680224 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^%0SG?!VDz64s=)nDd_;85ZCa-9U>wk{~7*AMMZgf zdj8K~(ACvl;>=)SVZk*?Y#UG+V@Z%-FoVOh8)+a;lDE4HLkFv@2av;A;1OBOz@P^- zSx=d{XE)7O>#F&nE0tFf(6#6zHvWQl7;iF1B#Zfaf$gL6@8Vo7R>LV0FM zhJw4NZ$Nk>pEyuaxu=U`2*>s01fX*Q1VltqnhYf*Tzuy6iu(G@X>E!1;SueP^sG!#i2S$dVI||D^f5;pII)TB{)z4*}Q$iB} D)^uMO literal 0 HcmV?d00001 diff --git a/Content/Transitions.png b/Content/Transitions.png new file mode 100644 index 0000000000000000000000000000000000000000..7e0b28b4f1a0c90d505a1d0f2039bd590d699004 GIT binary patch literal 5191 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 YG<ascale(i,2)", + "files" : + [ + { "p" : "TransferPipeTile.png", "t" : "Tiles" }, + { "p" : "TransferInjectorTile.png", "t" : "Tiles" }, + { "p" : "TransferExtractorTile.png", "t" : "Tiles" }, + { "p" : "StackExtractorTile.png", "t" : "Tiles" }, + { "p" : "TransferFilterTile.png", "t" : "Tiles" }, + { "p" : "TransferGateTile.png", "t" : "Tiles" }, + { "p" : "TransferOutletTile.png", "t" : "Tiles" }, + { "p" : "TransferRelayTile.png", "t" : "Tiles" }, + { "p" : "TransferInletTile.png", "t" : "Tiles" }, + { "p" : "OmniTurretTile.png", "t" : "Tiles" }, + { "p" : "PlayerInterfaceTile.png", "t" : "Tiles" }, + { "p" : "MagicStorageInterfaceTile.png", "t" : "Tiles" }, + { "p" : "TransferAssemblerTile.png", "t" : "Tiles" } + ] + }, + { + "name" : "citems", + "action" : ">i.crop((0,0,16,16))", + "files" : + [ + { "p" : ">stiles:TransferPipeTile.png", "t" : "Items/TransferPipeItem.png" }, + { "p" : ">stiles:TransferInjectorTile.png", "t" : "Items/TransferInjectorItem.png" }, + { "p" : ">stiles:TransferExtractorTile.png", "t" : "Items/TransferExtractorItem.png" }, + { "p" : ">stiles:StackExtractorTile.png", "t" : "Items/StackExtractorItem.png" }, + { "p" : ">stiles:TransferFilterTile.png", "t" : "Items/TransferFilterItem.png" }, + { "p" : ">stiles:TransferGateTile.png", "t" : "Items/TransferGateItem.png" }, + { "p" : ">stiles:TransferOutletTile.png", "t" : "Items/TransferOutletItem.png" }, + { "p" : ">stiles:TransferAssemblerTile.png", "t" : "Items/TransferAssemblerItem.png" } + ] + }, + { "name" : "cfilteraltitem", "action" : ">i.crop((0,18,16,18+16))", "files" : [ { "p" : ">stiles:TransferFilterTile.png", "t" : "Items/InverseTransferFilterItem.png" } ] }, + { "name" : "crelayitem", "action" : ">i.crop((0,0,34,16))", "files" : [ { "p" : ">stiles:TransferRelayTile.png", "t" : "$" } ] }, + { "name" : "cturretitem1", "action" : ">i.crop((0,0,34,36))", "files" : [ { "p" : ">stiles:OmniTurretTile.png", "t" : "$" } ] }, + { "name" : "cturretitem2", "action" : ">i.crop((36,0,36+34,36))", "files" : [ { "p" : ">stiles:OmniTurretTile.png", "t" : "$" } ] }, + { "name" : "cturretitem3", "action" : ">i.crop((72,76,72+34,76+36))", "files" : [ { "p" : ">stiles:OmniTurretTile.png", "t" : "$" } ] }, + { + "name" : "remtilepad", + "action" : ">bettergridder(i,i.getpixel((16,0)))", + "files" : + [ + { "p" : ">crelayitem:TransferRelayTile.png", "t" : "Items/TransferRelayItem.png" }, + { "p" : ">stiles:MagicStorageInterfaceTile.png", "t" : "Items/MagicStorageInterfaceItem.png" }, + { "p" : ">cturretitem1:OmniTurretTile.png", "t" : "Items/OmniTurretItem.png" }, + { "p" : ">cturretitem2:OmniTurretTile.png", "t" : "Items/SuperOmniTurretItem.png" }, + { "p" : ">cturretitem3:OmniTurretTile.png", "t" : "Items/MatterProjectorItem.png" } + + ] + }, + { + "name" : "smisc", + "action" : ">ascale(i, 2)", + "files" : + [ + { "p" : "PlayerInterfaceItem.png", "t" : "Items" }, + { "p" : "PneumaticActuatorItem.png", "t" : "Items" }, + { "p" : "TransferInletItem.png", "t" : "Items" }, + { "p" : "Transitions.png", "t" : "Tiles/Transitions/Top.png"} + ] + }, + { "name" : "fliptransitions1", "action" : ">i.transpose(Image.ROTATE_90)", "files" : [ { "p" : ">smisc:Top.png", "t" : "Tiles/Transitions/Left.png" } ] }, + { "name" : "fliptransitions2", "action" : ">i.transpose(Image.ROTATE_90)", "files" : [ { "p" : ">fliptransitions1:Left.png", "t" : "Tiles/Transitions/Bottom.png" } ] }, + { "name" : "fliptransitions3", "action" : ">i.transpose(Image.ROTATE_90)", "files" : [ { "p" : ">fliptransitions2:Bottom.png", "t" : "Tiles/Transitions/Right.png" } ] } + ] +} diff --git a/Items/InverseTransferFilterItem.png b/Items/InverseTransferFilterItem.png index 837afd78d009ddb942455ce8e0db7c98deceff55..a8345cf44e76b2af48da394b56e48f5b5274206c 100644 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU?fAP`L`39&2E!6(23=j< zsHiAUPfrUAi~kJ&IXOAGxVX5vxp{baczJpG`1ttw`L(|p&j;#dED7=pW^j0RBMr#0 z@pN$vshE?T05qPB&BEEh1Za|pufWX2n0HAsU1vPB&BKa3ofCIxNKS8GWbmNt;jPO~ fiE7Rg65E&=+M}d4%LF@v%wh0!^>bP0l+XkKr&KaO literal 1163 zcmV;61a$j}P)0$sW;wiXsb$Po>p^L_spC*Gjj#-6VT=VwH*m`8;!gP z`u+Y1(7c(ZiEY~mArL}f7zUPQ;W*BjKuRg%I0nG7EQAn*VMv;$h5zJfkR>u?% zQ|JCl#lmr2#!-u-xDLRgHK9@2NBKTc6zBiOslmGgmoL6q0F(1{*|yEamCxM2@`Rf0 zpHK-1!{F)Q9y{Yr0M@I&bG!YJOlz{aU=Kr=UtZtgb$Sk^)Y%ycA+V&TX8Y9b!`wd% zJG>ot8HKIfHws()HvWN)r5&2KSD?v~x>Qp+127DubeLrZLF({fdWmQIcS*97xIDGa zFgQ=e3~nANHeo6=gj2gsK?gu4ngXa zL^V@vo{?b~NGY)_i;86-{-W!{^b&s@U1b;?_gLHcNWC%yU=lSMsMY*z(VDPU-NnME zVp-U>O&rI04;IAWI1Y~MA`FAK<1Wwk?-nw-T7SWf%$49o%CSw(^>^osV3tzu-dk4bnK4@`dUfemws(uO>Gcs8y0o z^7gRHIBGJES|yrGKu2*sm+;K$l_58l`#A_ebHSrtIlxovd1jtk$5ZRG3K#A$_(oO& zTC^r~8(Vaoz1%m6nrx4HdEo(uL5J;8k4edzFZWri?viPZ@_m$2g()rpwALg^g4UWSj>&+g?cth7 z`4Bw_+6>fcUijk~n6a`j;Jd|FTv^)2ky9pNjVO)@!w{`CTI&<)k|e?R{nBV(Fcq84 zCtP3dV~VsyhbdC7FZbDOK4HOBr6uV5e%?#Qj5e)xA=Tq1);My?T6LFOtw#lcbeuhI zwH~on-Nlj9!kjznPI>w;P7Dr1m-*Rm37>0?=ZvFfUZZ7upKFchWLh%`YA0(Va)}e8 z6m&rhVHoo6;CP>WZSl=)Z~8q)A8KD+d|?=t#W2t77vJP{dM;n(v(@e>r_k|1VDp)E zlv4TX&ax~I_-|MF3~aU;XOELOj!Unb)3s1ar-?Qs@>=Xv>a d;F~-k{{#ZDAtYVKBvk+a002ovPDHLkV1m?R9rXYJ diff --git a/Items/MagicStorageInterfaceItem.png b/Items/MagicStorageInterfaceItem.png index 42de4e0fc429d192b90a7bd31c1ace9831768b3d..f7839e05d89f5e391ef61e5f9605d8bbac388eef 100644 GIT binary patch literal 573 zcmV-D0>b@?P)z zu}ULR6o$WuU78&fwGe_sip`Q#;;zLa=t96J5bXpD@iq1xWDCJAuOJ8-kS)TBmC;y) zS*BA#lPyxmBKb}3nHkqY*$ewO$vJc9+&TX}|GnqtFenul`quZBXtjUm#_fssoa{B2 z)E{O3ZRIln<#O2>7>1!^mrAA7fUQ=`v7;ygpxJE7)rS!i|DFM5UM$Q4qs$L~?7!(m z+q-)J#BnTFA3R_nXV?Dx=NSNnxvA6_!r2e0{^+jz;zaT70{}~3R{%IU`vrKwz_SXp z_V?{8Aerew{RV*3>)Tfa-dX*a>eoE}F(93vngPnZTCD=m>2v@Hf&hS8Py=8+S~u^V z14$b;beQ5hz0~Yc9AIDbJi;2ZXWB6o{d9T+4k{Q}K_7wGp0iEMnDoAEd zsvXVGyS7n*?HBxEK>CylbQVYj&o!{MHLzFL3* z^$+oV;|q{fft|-6281jXtbLjTvO6L{RbRi19lzqv6y5RuFraQ#J)3$%i@%+gSy0@u zt{Cuvfw8-qb0^dntA|td%C>vHka80OMwz$cJHVrxQO-L4yW8;-YE{w?Ls2|(00000 LNkvXXu0mjfM>P$k literal 1084 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 TF;4*E00000NkvXXu0mjfsdsGp diff --git a/Items/OmniTurretItem.png b/Items/OmniTurretItem.png index ad034a6e85b9bfebebf3055201b06f892961b2cc..3d4db5ec350c6d833583810551bb630ea9571f45 100644 GIT binary patch literal 999 zcmV6ciK{6%`g178e&67#J8C85tTH8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRs zBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3d zH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwN zMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7 zSXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@ zX=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzz zdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?Yj zjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAU zot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%E zuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#pxVX5vxw*Q!y1To(yu7@dCU$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD) z(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa z^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg={r&#_{{R2~K0jVg00001bW%=J06^y0 zW&i*Hl}SWFRCt`Nk>Lu%APj^JH>*Fy_kY~QrK!x-CV?F&NBju!k`jwHN-6^&dVQ2x z(+z(jPGD^>H7}4eQLTUu4b&>t2mq9#?Mne-fQ%!f>Gxv5W!d-MS{%3{Vc%Ns0(>Ru z0@fj;fEkn-_3yIGbuYkt7UX7|55Np+>L0-EE;hhk9$WFU8GbZ8()Nlj2>E@cM*00V1DL_t(Y$Gw(MNF#R? z$3MSGW+F;5*+ye*g4#gWLl4!f5L{HW6!h9&db8lc3et<0(o4a+hxJspusztLB1y5U zXHVwR9xQ0PMfxY%nT_ZqCX>nA!^W(-F~%bMU=9QCz3+S9_wT1fgm)qS%Rfq~zYW9a zyAQ{eO64CBdH*dSrPNc?H2Y>}XDOGQ2r@gh(VpAP``4bF)t=^;AT@xSr8j zDwU#Et6|$VJ3Bi9s5>T7o1C1~dV70GrBZBdZJjlx4j_}sV45b$WKta+9eoaDuK`{J za6ORWWHPyaczDSE{yw9lqb+NMZQEkowv3F7Xwhi&hg>dKYbTXxG^&}VNj96Uy>@k# zcYiagfm}A5jR74iD=Up4TFLVAGPzt1AO}RR)7}iI3dDgwmX?8kSKE`!j9LH(s z8iqlkP~iOh9N=-?w)Grc7EROE4h{~U0Dl7F_xsh@*ci5Lqk~eZ1klme zz+M*5^Zt9&BT6!v4DooJ_4Rd}Gv`g;0Y1Nv`T6;lHPqUij|V_WM39mo>wDJz7mnI0k^ZWQ(stEpja&O@WY3^c<`b@RjpQ|yStlWvH1UhMC84> zxw(PC!9f6u#UhU5P$(1{-6kT0!(rMvHLa-g^7%Z;WRiS7kEUq^0s&&N*wrms&uDLN z54gElHv%ORiANh78@R4}Ys5+^(&;pbMB)+fUAsX3P$=|lXlQ66m&N`(>feW3RK474(Tdmtl-PhWMPSZKs z-rg3#2MmkI^ENK)b6^u0ph?NO}TECOO#mIC6st{blF zRuu3J@KH}s&u6A-;`jTnQ`)vDr5f{9tyVcXIU%3V{{;M|bX}M6@o|E|AYENu+}HC< zDTU)WoSvStySw{(2OEab$l^ZbBD+eZf_hgE$X8(TpqPDpcBB9R002ovPDHLkV1o1X B-~a#s diff --git a/Items/PlayerInterfaceItem.png b/Items/PlayerInterfaceItem.png index 37245c121d073f8df773e2435d5db52e14c82281..698a6fed0cb08e4cda835cbc0ff04dd8a15e5ad1 100644 GIT binary patch delta 219 zcmZ3<@|tmiL_G^L0|P^JO5k50Wf0&K;`;vY77-B62CE7Hc*OL0k{?eix-|nGysj%k2+&$%vKF4aoPG-x z0m!*O$ADs3Yf}wt61QzTXY=K=Gsfg!nzI#%u!Neye`@S=f zqrsiXlez}Q%#A__V#dxn93ZjPq&BGnCQ1rv@q>y;s+gbB_e?Kutf<5p?s618F=3-w z_tQ2x@`uAG((DF5swDj$M{ju&J4DwsR0{~$<2n6~Pp(s?9~friYR#|XtNag@BkR#D)hWmv(H^wF2dmE;{z zdN+tAj--zkBG;vPvgYvT<%L~TdOlJGZ$u&rA(Y8E)}Z7gm9AMSthLom@_}&$rmBFb eKUzp&{uKb`a!bN$>4Opg0000dH#ZLt4=*n-A0Hn-KYzoC`L#g3j3q&S!3+-1ZlnP@p`I>|Ar*6y6Am!5 zJY?YZ_w+Q_qP&Iqkn7`}J2=ky%$}*nVaPg_JtULIfrTS@LWRTBrw$AoS$f?aL-$yBxBUUOElv0dFBf>EJVd;g5m;ld!L*TWQ4=Y^|1k~$wq?9?L@B2t8*Rs9^ zZULu-iCVw|;0Rc*jern>R;xv~+a-?U9I;xh62~#MT7M1TE-){x=$e(x1DYA>gb*|u z4Vuj+K@jAKK@hCJ6zG&((MuQL6Y$(h_bMaZ9`WeBqT9CXKH4@1FvhT0ESSw^7fPp; za!Qii1LiJ38@O++Uo&@PjA1&RGMP+Bl4PS9k|fF6k4l?i4!i+w0`Gyd%s?uoh@xnt zy|vaTrE)OFtWBpyTf+q^W8f)J2R;D5tar6qF&>XelH|gHjiTs$Q50;3)B!%b(D7}= z3i!F(3OXrTLH}&2Zu}%L0&4qyCbnsE-OlbV_#<_s4NPsaONILv)$FXT!~cli*8s3l T@SC+&00000NkvXXu0mjfH|P*> diff --git a/Items/SimplePlaceableItem.cs b/Items/SimplePlaceableItem.cs index 795e586..502bdf8 100644 --- a/Items/SimplePlaceableItem.cs +++ b/Items/SimplePlaceableItem.cs @@ -9,12 +9,21 @@ public class SimplePlaceableItem : ModItem public int style = 0; public int value = Item.sellPrice(0, 0, 50, 0); + private int autoWidth; + private int autoHeight; + public override bool CloneNewInstances { get { return true; } } + public override void SetStaticDefaults() + { + autoWidth = Main.itemTexture[item.type].Width; + autoHeight = Main.itemTexture[item.type].Height; + } + public override void SetDefaults() { - item.width = 26; - item.height = 26; + item.width = autoWidth; + item.height = autoHeight; item.value = value; item.maxStack = 999; item.useTurn = true; diff --git a/Items/StackExtractorItem.png b/Items/StackExtractorItem.png index 44be48e591ae254db1f2fc2c9a2cd7a6cc5503b9..f3548c0f0cfdc42716d6c69db7be2caab3e72e99 100644 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU1=1oSBD%V|78VvR3=E#0 zo>5Uz*+7-sR%vxNb8&HTb93|X@bL2T^6~NU^YfeeE@KDkVJr#q3ubV5b|VeQvGa6s z45^rtoB%YQjm^S&!(mmEvrC-?Iv)nv6{qdwHd4-AHtEutfE2eEKB|vrW}e{jiIvsM hTo^D}k%#9tBSVS;^S7?!3P6(>JYD@<);T3K0RVBOF=qe( literal 1243 zcmV<11SI>3P)WFU8GbZ8()Nlj2>E@cM*00citL_t(Y$Gw)%auY`o z#(y)rJ8Qgafh3GD;xxe8!-mRck9@NA?&OPN0?5Eu*~FqQ-%0N8!<^aAKpbN@c4xV?i8LeeZn zDTOhHIF7lq_m+kB5dcS(1$L`d04&QwDMgy5M7Bk5ZH44|Y2w`rAY*V&&zO0Cz-()e z?7T~wrns()F$OD&SlZa&ZmTt9SFdvzXE~7Tx@fI&92-671CW%9mw`m4nQgw|%3r%g zQ4CsRj3J7mZ|aa`8H2$9$8nfNz#p%X-GKAQzf56-!A&z}wE@Q=O;bd_&+@?mei#B! z?sRhRa;L+C%}oFT&trdSiA+j}V?>f5`-5EDNk#~4+s1L6;YA#yf`FSJK5*mY1UHT+ zSd=>*%AF38QXJ3E^RZAM5Q0Q0wAPnc%L_h3!TbF_{eGXyyLYT^ZE?7`NUK&GM*Dfn zq@-1=ak#k1>ed$3<6~xKX0R;l%Ru8?r)f%>rp$J`+&DSG3qxY1c)z?%*Y|VZuJ7}H zd6`%#yf7U41_8#HsXEH9iR{KPE8E)?&(3(>Xwa@y^1F7W!t+Lh;@KH1+uOKtOq!+) z1_QDzyYyDBk<^+yZ{M=Cu`waMr8VVFhxKNY-jypnYcv3Gl7#hUlX9nnHPU49@DMes z(gS7jLO-5T4BD{JKFa^er#2S^%mo3@8V&xe*8#ZOYEf@Crxpl+t}f?Y?uRr(LPwBuUQLNfKJM8kKgNxgY@Gv{d4>RLWbFk>WCtmXh6SHE$~q zHa97EI%HCES}O5!ZH@J2Gf!8mR^#Q`8jq5M*n)=QT$Mf@S z-n&QF_mNWKx-OYg2&QOcFr;Zpk|Y>oNF0Z*@AKj2O+H?`mj9D+`c6wF4i^{mrrPy= z630OpLy{zT>>1`nRh?ErcMBV{FSt`W}PoEt2BZFIOEvbge-9=bsSf zLc6iO(2u{coLnq02!WY0Qta_cwEN`gcU!l{q5Llk2%5 diff --git a/Items/SuperOmniTurretItem.png b/Items/SuperOmniTurretItem.png index c8cc1a48edbdecd65770798ee66d268bebc751bc..d64c26129d4b9eeb9a4b44e419cc2d8d16d7299c 100644 GIT binary patch literal 1011 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 Hu0mjfimERp diff --git a/Items/TransferAssemblerItem.png b/Items/TransferAssemblerItem.png index 3ccbae6dea48f8b419de042a5eefa62cebeddfec..8d699fbbd0456581920da8c4ba8d05fd07c9a722 100644 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUO)Ov#5fO=sit_aIbYWn~ zW?<0O)wQs&;Nalklq$pz&;M7S0zUPDXg1j1cHtDDvu&(5jY01)BcFhHhyRyO&Jet+CJ`q3a>f if=sVt$2@p=ZZj@a5#hg|Vz&=y5QC?ypUXO@geCxm&obQr literal 1344 zcmV-G1;6@WFU8GbZ8()Nlj2>E@cM*00g8-L_t(Y$Gw(IZyQ$< zg}?jg7fFd41hgz80XXAqi~t@cz`%fzU!H9M1KtD*VR#WMHWxD^*>r4LCi`_CH48S| zq^!(trdQoS-&6NgojO$t_zCzs@R9$`GX{QDz?;!%bZ;`501#sYz*>tj2BlPg!h25$ z;Q%E`613L+w}{}qM??TvE|;v=>$ev8IGIfDJ$dp3tu@|z0P;L1&+`M&vZ`pCrvFw- zF&GR;(iA%27$ap_A|i+g&z?PFylNgK+`aM^9HloAjW`Fs9Ob4G18Siwn-Ku4vQr&Pr!(%fHXg`1$;tswl8c)2DI&vHL}o z7;%745>BtLdHDJ@ljV{TK->PQtS0Z?@%?NJv+r1~=Q#i-tmoE_!*5fhh(Gh8$6TJU2kci-{zu zynBZSa$tFU%rCPUO_E?cReEd5oa2X!3%*&csDZyN794Fh%x5#+pPpix2It)8Kw4|E zETgiPv}t&7b;Yn_vOGTK)pW|g9y}oCIjIPU&?tqjYfe@xSS%Rd+;HMO$@MkAIS1CF zo$LG1?wYPB3Y-X0DVj88*tR%p`DHfapJ!*J&QVxPmStPvG!2#aJb(0v)yWAzK7ER` zEp3*O4F-&cL#)7fG({=J2d$~Q`l)RV zXqtwqs<3-1*1K-@-uL#i=Oc~T~qGTWelUy2xAOoSrR^d z!r$B=x6^)?GwhsJ023p_szL+Sdw#gM;AFMp`J+c$QFQE`G3X@WyB9BbxLA;M{gt&X zDg@#!8?wMQ*GYmXMVlmCpPq7Wxg__Vue&~3ot)67DYlz6yM}$ZSo96MvX?+cA*N~gFdp;s`8nUu=RAJ-k_H&x-0>6CSzgZHF&)o9nST5C*z+p?TYn9pXEMM2Rt1fcEA^oudE6NT2Aq9`b=MW-phpP%z; zv!U!xP7%CbBRq?E#1+b8+-!D(brKi*A9UD9H9wC?b^3(K^RQ9S(V8%z>pH ztXoNEs=FOxw-N2L-ei0s7Ocvda_0&F0000lq$EaktF()|zXgnL6g|opGRg<%-z5<;OgVv?QylXn+VH_4@#OIpU!j!qxB!x{ZRxi`R fc%p>FHfDy6GsTZfZNDrHG={;`)z4*}Q$iB}xa%xI literal 1399 zcmV--1&I2IP)WFU8GbZ8()Nlj2>E@cM*00i4fL_t(Y$Gw)_Pa8)R z#eXxiA2znr05%W^CaO$QMO6q$tRYWvG!cYhS;+VDLo!y<8K6u%# zle{(~jkK%1GiUGDxkmth09(M2|7ZOG^aOBOuh*Aatrh^*S^$I)|Cu@mLSU7`NC|+l z7HLe$#Lb+!d%n85Vl*0k@PJ{f)mqx!-9<`?DIG2^2S{rXrFWZyin3h}sFcE5%ii7| zqtR&S-5E$JnVXwK2!V4Btu0YDUnB%KZh5Y7>lLT-%t z3d}2qCywJHbj~>d#&JyQ`_l`2pCq@YHw_Uus;YF`Um?YfRYP{XtWF!PNt+CePoFhq+ zqPS*&eBVbYHBGeE1h==e&(2u8z6QYL8=yHDusj$5aNcb4{=oxor6hI^@>Ha0N|t3` z18J?v04D@b4i8y7IpMFTPdSYue(QEoz$A}(;2aKky}iw_(cqW;eLi$Ly!-iQ;?JLP zUsSIwmv7=6pYuI89I|$O&AljMRIBlJV}n7ZLg*Z!a||jK-fnC#s@1p`MXX(4Q;#AN z&zt5?DJWH)oI!OC&pDKHBw+}^Z{05K(^K|#cIda;C_n-IcALGO9ona-{NC;2fCz}A z2$!bFyqIRn+bV^$md)d1?q6Mzc^->5H<1bHX^r&oVwOFZ1`t#?-R{NJ<2-es;!>7Z)TznkRlD1V6+v&yS9H_3|ZewzdFx z(d+U2=%}y}&apHYur?SF0LMwfyN!*4JtW_0dE^}Ca$1SPun1jqFd)bi-*30^vWyqK zUJ<%KA3vtu?=v6AB*4}DJU5Grcv;4$R;%F0|A36aO36{DLz45?i(ZfA!2k!mUtXsB z>>1k!2RuJI0^rZbkLf;pMxZtKPfk$4KdY;}+1f%nM*z4I!_V}Q6#@e|r3jNL*}UG~ zW>l-OyT8xM;Z?S7v?Yx?W!d|X)I*KU_ENw7-cjKO}v>IIMh{5+{yniAFPoHv`? zHX7WEB7QnKL6jPHK90G6a>B=j1#TM+&YMl5dL2Ja@ub8Tg6vyB0F_FGz*@%RF>g0F zxma0YcYmMN>uYRYg(B~dBrpA6yIszkP4;$n7&aPs)>5lhky0`mjlK<(Wf{hpDIt0u z!$yPt`Z|O8d2|r4c79GP=eMhc1^#*PfIw@adYxgTLF#$PG$l<_RNg;d0o@I|yIC@4 z3=TMa@`Tj)k;YKbn$;ZWW?_LhTU$8K!%tIWmQhJl5CX0Bl$=ZKFyoPPu9zcIO02bv zwI(xWN>5ovklU)9X2LKeP>RWTOyK+YLBM1(nE@$)gb;Y1S4=}GB{J`5KOgN9_|$4~ ztTh0imX-*FAhZ@G1fEhzrI1nOiqQt_dUdQxS@FY(!T56KwHY;dnw;`AEm7@_WZA4~H gWHS@&Y)rIfh}V_!W$D^r1vG}i)78&qol`;+0B(&jIRF3v literal 1384 zcmV-u1(*7XP)fA5)@Wb!e_n3}dO?25I8V#NE2hi@7(d>X!S zRDcZunx5y?>-9P!sS(F(%z)|Qztr4a09xS$AA%o2EHDXC6k$vX9>;Nd z6l2)g*}?by9UJJ>>-GB5(h?$qh~Rl1B7#ziN~MBw$_NR!PW{T&lPS>pr!%a)zl*^} z$6Y#|4q9uBG5EfZF$QA{tE;Q{zTdG&Cm&6vR5k&EAi&Psl#4kWM`76vSt~51=msH4 z6d)p4mW9?Dr4(B0Ocek-Q+@~nkR%C8DU30MVTcu5*tShSf+$MY_ag`oG=8_oAnIaS z79x@XjDuxBj^p5Y9!e>aBtb+ny_E=pLK_Q{1p*iZZ7c+Z8lKu1gNRTl6tHa@t##&a z^(CVbt8}B#i%T4HS}aaJ;B>ixQlJ!^E;m@5e84fMMK3O4%;6zMc1E&gjK*afF)>C! zpqLApIo@Dt>LDVq+b;o7&9_*ZTA|t2w1WkZbdQKRRAUUx2FU00R4NsMARr7wl%!0G zxsW?^e{f}bgMtlz?p$S~wFtn4+8WpE>)e@r#AJDo<;D$y1DBH1LmNY(P@q^WrsdxEX~IX=fV z1dW|9p&U2O!3@Y~goJW2mpai{EKdH#($qr=HoR=l@!Q*<36e6$a%}+K_0F*Owhr9q zT(!Zy`G>52RID{;P%^;HDF!+LqYr_mi`(2f^(&5}=tpTpoh~;JN#%OozD$smzbZXJ zQs&9dP5ijR#o9UxC!SNz^$-k&JjAi)adDgHDUdMX?sE0yE|z_mCrYJ`-)Jqe?avOG zn5@=0DguPf&Up^B%Z&GmsbY(|`FH#k>q;KvmXv`eAWuJB;OYB?VZ!dCjUjOc zXe$Ae90EmAM5oiqNr#TEb`gBmaPF0r+LHf53v z5iv)4(5Mj}=|>|lt#!6g#87g2e2#0ZHD@U2dRd;l>CUm%yv^r$pOUkW$YG|8?2JG% zpg4~4eLt(bxXe21@eC$z^Y1YB*$t10000WFU8GbZ8()Nlj2>E@cM*00cluL_t(Y$Gw)%Zq!H+ z#(&k_p7A(i4GPJKB+4!X0XGmrK?rfo6Y!cV2ZBsUsZk80{jU)01|%6qGj>zI;iV zrip1!-Y%t7w*ay%!}JZqs7DYew4sSwp_O8m<=7%aM9^B}oI@#vbFO0rz;w(vAOO}{ zlu~%_$@3gjD*8dpd1+}_Y2Hg_vl+ISp|wUtI)Hhw4k!o$;y6Yrg|!wD>G*CVt;@ip zyOOxN@4ZJv7z_p&V{p!O`MwfS8_B$BsSrGW{r7-x`7!_}`DP6)74}k@{m75GOxtA; z03{Ca9A!5-KHIGSCmQh0-lDZWlv0a1>i7GMMkBH;BhT}0v;D|c8jo;)`4x9ZZvpt2 zJY;Y3wBGZ6As^m*27>`n6xHp~Q6~l!3^9F!DeF^csZio-M<%9pJ+6mexHCGg`>0r> zbUnO@=>bMpIIpOD4Q%>DR1nrZ*a3NmU>Qa|`ayh=Z1H$6l&*&shph}nlMq`Ov^e6W z9)XGx@!$o|MblT#f_E1{YtaEa>$?Pj;=Ht7;*YYM++Tjh_3#U}GORD{bKWqtzO>KI z#x6!%PV*bQ|N4aWXrFu6-r*5?fuSrNuc8Cq)l3er6E>m=eFLA8H9nkfGY&uVcx8_Y2m+`qtb{c`ieF>~JkxxIHQ3@ayl6fq4>>K?I_g%#2>_FPm7}v;9d%wbC;29?r;iq>o92H5(>h1T+3&nKdX84A zQ{J{1_9joeV%XW(Wh1JAj?QlJ;-BYKUJRpy4X_|K74+euy=G#?YM}(@onq17F`Pt>1 zlq$tB_J%2z$fsB&an+bhsu n&NJcWgwBj)k^9e^tt literal 1449 zcmV;a1y=frP)WFU8GbZ8()Nlj2>E@cM*00j+6L_t(Y$Gw)#a}&oF z#edyBqZw(0gr&&gOBUim#qq)+NfB7&FMsP$WlE{M7cYP+j6qfz`$?q!SZ!IYR#<7V~oLdUGhAyfJ!j=sd9Oq6GahOmLY}2%RRzw z$kU&mGToiR8i--`^^B)KJ!RgRQ`^*#LXvGV*6TG|>(4r3OYM?2V-0TVVqC+E2QPSi z_ch5*0vbeG{9`>!vXgLpaLlT);@rk2(SZ-yNG zaKz&J0>?T?A-9`B8HEvsm;ZXn>CID;Mj?Dj*W}g&tu(Xl46cTL)}1kWI6`T~Dp(ao zXh<3f$KM_kT}1TH`Y7{}M$$+SFz%0wIawForIju;k;N^@L71X(mhC0W?h*uGfK8EO zrDZypq8vqk(l5^b(j5I$Q8=5Oi{89f zQFqz9MAtRsushyma4`UTb#@7)rAAuG{_B03@0`f;AcL2=X*qr2w?@` zPRI!-Xr);Nt3r5S6|9)tnp6YZ4Z94-L-x-1(7wjjEo}bA>*{_T;~Lhixi`MYSK(KT zz8~@H!(XeJDw8jJm&`gdGB2YWc6s!lN3@nLQa>eV1_&vLHqkavW#w0U#0Z14acKS7 zVmKaRg(bWhZkejC7rxiI=r9})Y5mzk<%(S8WSgw=xG&zQ0u++m&yiMg@all(y2+7$ zMAAsG@@kpo6v970Wbb^B)KAfMjj)0=O;JjHzW6>4r4&IB6u`!kk1s$M^=RBvQ(%*pi`g1ywgHEBVrP)Jn5qL;tK#f6}kqK6c`Y#wdzDW2SWO ztET?)bL-QsTbgg_T}GN}7(dpx%qjEA=a%??Js|%Afn33%!}&~r00000NkvXXu0mjf D@j0&n diff --git a/Items/TransferInletItem.png b/Items/TransferInletItem.png index 01e9218527b4d4812204c66443da6448230d3bde..183110adf2ad3622c3456a3aed8fa69c77c483f7 100644 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^3P8-q!VDz$d}3|{QU(D&A+Cu93?d>TQBhHzo}QB? zO{%Z2cVS@2W?TYy=jVSI_B|b_m$4+sFPOpM*^M+H z$I;WpF{ENnvVaRS&kQE7V+kBfH*hR?nRr0$0n?JHJ&mha8-3O=E!11sbnI!SR{~oY pqvHlK)nt+A39JVgX7;KvFkIXv#w)F}={L|Y22WQ%mvv4FO#r~`Gz9WFU8GbZ8()Nlj2>E@cM*00c%!L_t(Y$Gw(Gj}%7` zg}>Zt>2A*eY6c^LKn4LPyjmNJQ2&wy!Fs zL5VG{#T^8?9-FJ?HSwVME~ByLWu`>>1aNj@URy2WX`z%Mxqt z#fof}VM9Q#R!EGfo;iphfC0)r!_akPT}QB%40!nB1t`V)y*+}~Xlu!`Y-Ha~p!eQ$ z<@lIyo<61AYzWr=t2jg{vj}tj9Awrk?fSNVhox0Tz~tP zg$TaKR(&Lp0t9G*pcII(9|HNCH~ez{KJNe~+Oktkltn=?o6+StZPVcU3)LrNFM#SP z?t#WRqSo7UTJO@^Imc`^18YAB4%k@B?|1I7+TX{703x6i3W&yFW8}`umwdijp@G-S zCBNOh%lpLw?L9JaiczrET4FD>Ay71iSGR8Q=Zzbb-hY5tgw9&>w&nWK5v*4Ho#(u~ zeVbqJ-6IcyLMhTDal3`mQ&rWd>H&X5Fd%8~0ZF|9?V~o^YH=3o0U{XSq;^zksw#pZw=;3YJ7T?>?4!xao%;$4_ zQIPi#U8I+cUYJrEMI8J7&aw=nH7O-Fo6SzLJ33NYlV#b~os~k)>t+(%PK2yNz@&tp zn6a9WYA2BQp1LOkpU_R7=i`_ddV6+uwmo0hJL{%5)sK&fw#7FMw(H0N=RKq}Qu_Sl z9oB&z*VkHKNYV})#u&P;<17TK*$i7%)QbgTEv6reF-AfN7sxV@>0{&mf-}tLbBy<# zE*AW7c!&*w=p5a_0hjU|-9t7E$PmI_#EYau4Fb!y@)9hbduuEg7v5YiUKO>v}vWBIJ2ap68^L z=(=vy%QTtkt7v>~Etks+v>ZHeaE>VvhN=b!I4^~vlHs|f{;vn*KO3-R M07*qoM6N<$f{blVVE_OC diff --git a/Items/TransferOutletItem.png b/Items/TransferOutletItem.png index dd8044eabd84ede30d9da4733aef34cf206b5c7a..e9548c1a313132e07b6212daeb0ee1ba87292955 100644 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUWzbL;5fNd?X7Kd%WN=}K zii%=mV`FD$=iuPrlq$jxUb;OXk;vd$@?2>@k`Dv1C9 literal 1218 zcmV;z1U>tSP)O4~WFU8GbZ8()Nlj2>E@cM*00bsUL_t(Y$Gw(Gi`-Te zg}?g-sjAdN8dJS6IJWT!24@rKmGS@1ABf4q5WENh#~nlPY}0nBswBPPW>GD5soG9f ziJ&&Br+4l>=iEVnpMW2L&-^#fA@HjJZ};~0j_30^06FL3gfRy1J*r9w0aYE|i3qAn zjB)ghh~T{kAcVmC_wT9e`kezl&*$^wlamvSF{G3LhD)oeLRDEVm*kvr&M}+KaL$o) zX0=+;bsZuy1XooR#uyfh1y7zlp|0!CZaezfY&JyNb}g}s`; zD=Nx*x<>buuIs=8<{ywe)UGDkgs6=Ea=R1^R0s%yiw*)1z%>q=>?RQOn;F?;QPI(v zQAWKHwt3$;WdnTc^cL6ux=ykQmCHa`GA0@J>wSU^BP~Z6Ip+`&VvOS(Wb-@xa>&)! zSBWm7<}#4A7Gn+3MPwq_Y%#`MHp65xA*IA}xg14v&K1cey0Y5^HK+q=)Ik6;%BpePEesv_6`X7gR!wgUqp26VkKRS(p=*limir8KxskV|;R7@Tvc z-8gbvPirkXXPTzL7&Cy3fcj^>UX#*!k;#rmK-;y{bxpJzjru~j)-s#T=(>)s>zK`E zSZk^4`s)R2oyB0#R`J2(qPwUE0SSUMf>9q|v0DkbGjH z3z8-}-(85lYX(&ehO#Irih`W;Q1t8ddN9Gr-h)PU;@#mpp8oihXd^B;7S#f}4bY44 zU+`xBhV^94wO7};|NK5-9S9+eGU)-oT1P0v5NSh8=Q=*lKY|B3kSM4qXY(`8IKwYJ z$(+-Z88zg778zqk^=K||l;8tLUygYE^J8v5zdf}5fj$G}qU6ypk9hF=15}ivDws~E z!@#SmimIw8%kta3u9y@^5b`o}^W{wh;q=-m@gPEkE3d9_$v9l!!ZZT1L|4L>+&_e@!a|I4);#)(H1SC45J>|Q?**H zFvbjpKXTn}9p#*fE@G4A;cpMQ`^Q~OHq67E;=2N89c|arw(aH;=h)lZqiGu2wq>uh^gNjlfl(@eZj!ZpynI gpRom z`uciZU0qL4&qw zd%8G=RLn_EIKVWefuVKblSe^u>sk(Jyyqx&Ol~Qgve+o*RBV9c47J6~47+&+?l-wD RF#>91@O1TaS?83{1OS2XFwy`3 literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^QXtI11|(N{`J4k%Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPtySy+T-^o!`{dF2?@1snabbg5Slo336n*}$-KY!=6QxDsxDokGO^gL z+vhS%ji1-G?^?P-6YoBHQS5oA<5*#c;6a=7X9Xu7*|n~{wxyS;SUVhyw3a&Fh7OHXfdaM{MD?3pH# z8|-Y{WPQ=q`oPmwzi+mx-fUgBORwqOn)i`^KgV7FJbT4io{F}~=@vJ?@M=5=V=E2i Rp9}OHgQu&X%Q~loCIEK9hjRb` diff --git a/Items/TransferRelayItem.png b/Items/TransferRelayItem.png index 2d66f3b2bbd6121c500ec9cc76dd7c852a503a81..71ec072e9351a7688ff2105ba6f94678be26de4b 100644 GIT binary patch literal 947 zcmV;k15EshP)72?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+ z5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRs zBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3d zH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwN zMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7 zSXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@ zX=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzz zdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?Yj zjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAU zot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%E zuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#pxVX5vxw*Q!y1To(yu7@dCU$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD) z(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa z^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg={r&#_{{R2~bV`0F00001bW%=J06^y0 zW&i*HVM#f3FbG2}(dhk8yoIiGu#X81ScrX~P0eh)WcKxcz!>g;yG}q& zxz)Lm7Eq7o1wckrkzD|&%B+gW+!aB(_W+GJ12kf4Jy1)M@;zY1GK1McsXD;%Z(cA7 V2K7u9Wy=5n002ovPDHLkV1iM0$8rDw literal 1352 zcmV-O1-JT%P)D;1rOeVG6N03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00gW_L_t(Y$Gw)#j}%21 z#(!1SAJfyb!?^D75p_Wfn2?|ZFc=PAjDLXf;NAFd>6Mrmym;b@22coJQB24RED~TB zbcgMp{;2ADJ@ig910Lj{m2@ioRnPlA?_1AP3OEP64@~%P#xCHx0v-T3Fc@HrSpZV1jkvNxU6p)t_!fHx6V6;Y&c=4is9#do6(TJI^O;0ZL=;6`#=(pt zV+EvcPGD;W0RgZ=lZn~;m^hk3F+W_d|4T6au%?>ibhAn!fi zdrT0KCXU2R5bw|?AWapOYp9BhB(yjWc?}1abM_5yvNeska4({1`ZQipfYKVR^~=;b z=g9M%x{298+Tha@R~aQ!Di>mm!HdFs$9RxYIq(9N0|7oec9YfRXMA(@B+rVFVXy5} ztu=X`F9L}O)>;Z15SfA_dmr=KP_R|Im;#h)7q6T4-uiZaYqYIE51B^g^v#1#S7$lNm-N&K;1s- z_fzUzb;bL)W0r9o!0ET|&|_6S_I2&AY@`^&H0O!HhaAd1SkWqkk`jrJk|UVoFv zlbBFD;yCUExvNo!*EFv$1y<=JO{GYl24~t8)B3v zjVw{zw)A|5&A0cg2}XUm|5wb}Ye%{M$6mA&`u!eZU?_@WQG!GS@t!DDRKCwIkM=N{ zv>Ud4uTTi%rJPYx;-#faXhD9uyUO{sgXDG0^1#tg0zgsMb>{{PHlej)s~+>!g;O96 zpiv5HXE56H`SELf{O&y}*Vd$RaQ50!&aWLrA-ui>Ns@L3I^S4bGZqJ$F&Cs*s4eD z-sO=-;k`lcc+u>CV5c1VWuRFm^Uvm`{@krYD4-EVPfgg~ejag_WeXV?V-_i#9k<5g zaTn2ix3q_p_EX!m-V~Vzr92`moG<2`VD@}-bCWE~Hq`%hfczWR3AOrtv{Weo0000< KMNUMnLSTXjKU&ZL diff --git a/MechTransfer.csproj b/MechTransfer.csproj index 0b2e4a1..945f6a3 100644 --- a/MechTransfer.csproj +++ b/MechTransfer.csproj @@ -95,6 +95,7 @@ + diff --git a/Tiles/MagicStorageInterfaceTile.png b/Tiles/MagicStorageInterfaceTile.png index 8970fedbc0413348d9c879cd7ce478afa4f9d307..0ded4ce330a40a081417d3cbd1f2cb58200b3eb3 100644 GIT binary patch literal 710 zcmV;%0y+JOP)g@Vv5;wXiH z4HSoBagf$VBu3sMZK);>o#Sxx<>lVI#B`Bc=(pT=&VBdXypMandro3F$fVCUU0*+J zS8D)_rBjDlMy2{A)@e6sHUUl?D$0MrNj->}8xvOm$Y!(Fi>Z{&Kqiwh59iHLdiU0v zuT(0QU8@-;x3;$AYC<U@B|K7t#00coGmpQXl zWBA9A9+Jr<5Hgb-IUTtmHGIl;d^1Dg;yD0nyN$jZD*okb6980$U2EQ7hIDrJs$YO^ zCKk(I0a)GMvHVY*c^CH!7b5-I@BP|G%kM8k(wSA~1%3JCnE#Xqppj@;e#I-d>?3oAVyZ)Yfqx9?wpTs#_`zKuRBBg;lpUAW z*8x~)UDo6IaR3eu4gkpI%vmdyNk+W*|FHlmNtfl z09Y`Wd^?+5%+Fi}AlUn3`Fri>FGE7FEW1870z}l*Z_MDm8 z`XqG&8z0sp7xZGV{Q3Jp8!CQBUuMBShB|s{>(WFU8GbZ8()Nlj2>E@cM*00MkTL_t(o!|hnVixWW< z{x)1cg5cRL#(+d3R$3i_L$EmliZ_941YrfSwXwHQL|YL&5NrY&tPUGN4#E|3Rzfr& zF|v(#2ZHk#ti{}0=GSg!1Hu$O2=gOv=Dqpy-ZyWOz>;p~T!9Aib-n-qTR6 zBhkk#L?UZ864&}y0RX*T&roc)%@cRKUDdgun)mPCnkSykjPYWjkeg1YG*#%x#DfSS z(Mi`0BwoLK5wyWa`~(1O54M8z@7%i&0Lb&)KqkHzNz>FoB0YQByP&;(%AEM7n$64S zRV*C+sWnLZU)ksb0Ot8oq*+6;aXkNGocxJ6sNLZ4NxMw%A>S~@Wbeb|&~&6uIOk=b zF;@1alz>qEEX&F{(veaE0E7@rZM1Zru(?7P#uyl5kW!W(U8I!Q?e7{6)QN4cQH+Eb z5Cajc>u1&zrp$l+4mPF+?wlA1@I7w)jFe5ZKQV1%M4Fzk=^7_ki9a?kDP9>*rf%@= zaqk?VqJK}$(0=9b{TT>}Yv&qVk3P5%EsV##0L W_a*L@PwkNa00001e}6#oGKI5;?3T3Sg-Ni8ic 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 G^nU?qi!_q} diff --git a/Tiles/PlayerInterfaceTile.png b/Tiles/PlayerInterfaceTile.png index f853029b2e4fbbebfc8b83c2ae054ae04d172660..7a57b7f23ba6600e83aa9ff5b810f6a440967e75 100644 GIT binary patch delta 480 zcmV<60U!Rj2<`)r7=Hu<00022;iI(x001yhOjJbx000ye6#oGKT3T8yEiFk&NjNw- zYXAU50001M002Y)q(cDzXaEfj4GsJ4e}^(sJq+Q)o2Kj705;8 zi)>a`*>}4G!iQBdC zdb$ayCKE4=D_#?dUod0FKSD#P3=p}td0v9zk40xqR&rqh`j^Ulx@-4ShuE0RkITQ@?C%|b9&kIy$WWaHhKy^GwxY^X{q0#Xnw3zGFi=!c=4rXON$Vtj`lO))(F-X z;tdiPpxOxi$A!;$9~eoF+8bdSvUwiH$*iKfs}~(Uq9d~qFhICFSG8n%Bva6z)%Z8} WU(?rz=D->N0000C25u@Eb11ri~S_GCZ^Y4!AW_kjs=Q~b&A(*z=|4H@^4rLUo# z){ov!+7CA#+dN1%S)~Br1@TO^04ipJv(kD@40 zmL>52(XcWGTz_eksI=AI@Am+J%jKem&}-pPZoy}hwCNNLInG?9sHR-uLQWvUiH&acg?Gwhv8ZVp#UaUO z|7;h!u75*WmLnu>-TIbyjtfa4D>QgmHwSXO+#%r}Pd_X_IuL4R(&WnPT=TSY&~HJD zARi)0UKh+kAtBI*Oh+ah%0((9FOsGKvm7KLu4gdmJYP6+j#0RVa?qT979dhQ&u8Nx zdBhXWlkRMtEieztmNpLx=AsqzsbzUkj$-RXv42?kQ0#mvN3qyZELA2Q%VOnIt7OtD z*5IC!g92aSjB=|52=H-G=z^(a9AtTg!-{9EaZfUP=-xg@DXo1n4jR3}!Prs2`20Fn zLzi2X6~&Aso3fgx%0P;SEED#r%NQCQV>;n%IMUFIQs+Sfn$#FIKSAKcBB-`j46Eir zVt)m1#j@#FD2ki6tSJ7HT5KydU9QDa)nZvu^jKCDg`sf>j~i1IgZs;h;xk9Fn2O+1 z`-vzvSAy7d6bs3u6~|eViuq9&5vFfI=OQV(vKT*;J{tw0Sv}WmTlza3R9hv4>1x(c zhLc8)@+gD~@~>kz#X)393NFou3@2d)et%LPN?4_u51HJyGoc=^L&;0Mhwk=2cx&D$tT+Q2R z6Vq%pnXrap^BLVfFP{K_*Zr%vlbJPL&^+&7%jRlcilCXCG7CW#Rp8b+%^r&cK`8PF pkP#%Z?4azRg&dSM>5QO7_66#Vl&P&|qrm_G002ovPDHLkV1oQy>_Y$m diff --git a/Tiles/StackExtractorTile.png b/Tiles/StackExtractorTile.png index 998f7cab9d4fd7f7249463e3bf6ca36ad67360fc..f3548c0f0cfdc42716d6c69db7be2caab3e72e99 100644 GIT binary patch delta 176 zcmX@ZbbxV!L_G^L0|Ud`yN`l^ltF+`h%1m55fRbV)wQs&aA9EZ^z@91ippkS5ZJa# ztGk(ti;J6^n}>&omzS51kB^_9-^_OzJ5Uc}NswPKgTu2MX+Vyhr;B4q#hl~>0TyO9 zHVfwshgD6^E_D{@d>CX`oVJtONI7@eq)TT4Qrt9O_^3XfnR$Z8CstN3b78<_MIN5p Zj0`CX%-_0>D*%mR@O1TaS?83{1OP_MF-ZUb delta 317 zcmX@Wc!p_$L_G%+0|Uc^i5X@21sKVoDQ))CR? z|HB3plFbZ>C~?lu%}vcK0dg4_oQqNuOHxx5$}>wc6x=<115)%-*@5DRJY5_^G|o>A z+9=p;AP{Wv{r+ahG!9eg9SICsU1ugX%~GqEE&s@NWdqmW{0UBX?mt#3-^i6Ly*F+e zugD{&2ix@OH*H_WyKRSE{3clDCKfnV&6vZ&Z6Z^>$6N#((U@Eyz`ySIa~E`a_qKcYrWnp)_Bblw*Ohl zrkwixq#5^&=Ja$^v5*ZB`>Q@*FMqXxe{aW+J+1 NJzf1=);T3K0RT{}cu)WU diff --git a/Tiles/TransferAssemblerTile.png b/Tiles/TransferAssemblerTile.png index 52fa3502aa3a5d697c76e07cff37242271d4c0d4..8d699fbbd0456581920da8c4ba8d05fd07c9a722 100644 GIT binary patch delta 175 zcmZ3@w4ZT;L_G^L0|Ud`yN`l^ltF+`h-+d2gNTSoR8*9wr>6@8LpB40uCA_yg#`x( z2PY>d7Z(>dH#ZLt4=*n-A0Hn-KmV21sKV+8|X6CC* zp0yb$B%2u$QR1ARo12#^`IE5#qH;B5ArMIuHx~KNl9anY`wu8 z_x9)fmRseqk2l;fD}Px$FVJem)$Oev$0Yny%bC(wzw#~lwV1=Iee$)(x26@mfB4Er eDfI69N22Vd7Z(>dH#ZLt4=*n-A0Hn-KYze7F;$>m#*!evU5PYQSdbB)Yg&sMQ|3~W6gII~y-Ww=i4qdqm>D+C W6hAJt{jxOB90pHUKbLh*2~7ZQ-YfP1 delta 278 zcmdnXxRhyvL_G%+0|Uc^i5X@21sKV+8|X5qN+ zxY7|QB%2u$QR1ARo12CVvv=?2bo=>y9oHuoB?w{Gq@pP6|Ny3@WJso^2RwWBAn6W0VWS-v2Njkco zzbbZqvAg9L>19$mC$VGC-Dd6yc0IW>4owMMo3r=ove(h7S4%Tq^eyM>zIpU-iN5?J Ze!X=W-*)gHT;dP%fv2mV%Q~loCIHP9Z3O@T diff --git a/Tiles/TransferFilterTile.png b/Tiles/TransferFilterTile.png index 8c4da642a9a5af79d98183e3ce405c4bcba2d4e1..8fe9ed527ac6fc6c646583c91c0b5f3eb79d9fe2 100644 GIT binary patch delta 209 zcmV;?051Qi1K|OX7=Hu<0001_Z$$I}001yhOjJdP{i75V6#r-dq(cBLEiGDFT1iPs zI5;@}0RIUI2?`1d3kwSj3=9no4GsOtU+*ADl6Z2vRU-5mRI8R8P;DEa)v`;YZ z7tF)Ui%o)puRt9|WBW3bo2igxtz=0n3pgkz0Da#Bu+{=_&VK(cVIy(s89 zLjd-@Rl~j*9d+}2El78o$r!>}Gn$pNtzI*}Db)AGvKW~@U`Rvl!B}R*B zUDtV@8#NSNYJb$gbF$AjV;W3r5^MDtIo)wT_CX>@2HM@dakWG-a~ z00032Nkl+K=(o%Dr$aCjyCW)HR2eui-LQcCXm_I>y99BwD1 zRj_!5kk)l^`gJFd_bp8D!iM<0{T!k7&i&AZ#DCipDsKD2$IGXhQ9p8b6{oa)3LWfD zpg7Zt|47$c_3Pd$u1EXGUnnlrv{zg*zFTXCHkMRE*_9=8-oM{`NgWj2Rh-hMI72_P a;(h?u%b32mm)pJo0000d7Z(>dH#ZLt4=*n-A0Hn-KmQiHdFz3C8B2ovf*Bm1-ADs+96eneLn`K^o^|A9 zaO82i7`1{`CxMYW;(*iJ{7uF;O(Ol?A6fsZJXF3)=SfDDBjeg$fd+G)2{$KnW+aQ; ef8HGbmvMc#_;I1>b}xXYF?hQAxvX21sKV+8|X13P9 z5H|rRB%2u$QR1ARo12o{;eO?+(-gr=a&mR_5b=j%)iVdKyuo~-OJ z#t&)?^W)Nu+5%p$bMQayke#)1rt107@(*dJR!rKYF{$uY?V`W2FBe8XyzJSx-HykX zdrrasX0K?&L-mi94n6-gvubtDjUN{(rsSQ|%AS>XRowIHpJSKj#T^%q-Jj6-qc?LS P$lacp^&$aFW*V+qEa_xmF>5|6}2Ch_ymyf9Vvmo@3xW%R^>7Qq;->}c%jZI;qTPs6Z z@%A8Vml=GkL!#DKR;)TQql+te-Coh;Z5bU0~41^@s6U9gPy00009a7bBm000XU000XU0RWnu7ytkO2XskI zMF-&r9}@!~6Vtju0000TX;fHrLvL+uWo~o;00000Lvm$dbY)~9cWHEJAV*0}P-HG; z2LJ#8QAtEWR7l6&Ry(qUAQ0@{GUs#z=G<)q@^>#zz)Ku=M1R0R+^Sb^A{ChF?)e}A zWK3AzjuXUR^0NSd_Z|QcV;p`KyV@((T>rRw1P}jh#&XV8Pb9NeqO}kF2oplsKc|!c z0M5DnS>E+}skDwm9zqV`S$gaRgw-_Il2l2kM)0J5&RXapJg+ODy}&&|1cWA#Qo_1r z=Z^1@GcPMZD}Nykpao=ArDriI$q_t@rL;l_Aenp3s`p!fuQB2$gcI>roKWl~c_`H( zV!BVnvApm76Yo#3S~k7+rx>T0269WMaj7SxwG?&Wcjc^P^F82K3!x`sF*WTO6LK>d z&^;mRLaG#^9Q`d!SENj(*t{<)_n3vO&Qwi^UObWqLPt|Q_LP;=Y-H41$$XWVbFNxy ztunO`w30F3W3!X4{L5(d+&7GO)Ts5?Q$MfBla4k#zqbu27&oGlQvd(}07*qoM6N<$ Eg2lGN@Bjb+ diff --git a/Tiles/TransferOutletTile.png b/Tiles/TransferOutletTile.png index 92b0ec60abd1a05352917a115de3880c9bab6e80..e9548c1a313132e07b6212daeb0ee1ba87292955 100644 GIT binary patch delta 171 zcmbQpw3~5)L_G^L0|Ud`yN`l^ltF+`h%1AJx`>DfLpFn_rze98LsV208yg!tJ39vl z2PY>d7Z(>dH#ZLt4=*n-A0Hn-KR=VHco$GFV@Z%-FoVOh8)-m}rKgKyNX4Aw1OXOi zHZ}|AfPj-0A)F_i45q}eu*OcAAh}SX_1FoXWC3Lrk(rGvy#q9_NMsqcG$vXz?D@;< U`68yQA7~1Lr>mdKI;Vst014G9CIA2c delta 257 zcmdnZIFV_BL_G%+0|Uc^i5X@21sKV+8|X4YB5 zd^;Q{B%2u$QR1ARo12A zG88(Xz~OCM9)E3OxX~}8`U{P5eT#~wcCM&m5n|zc%%q@nWbIbNHdO|l=Q~%0CGCF3 zt;Tq*;p?@hDwpnSo?6*9>vJymic-mC2Col@AA7X()Hz|Rw4+NjiZ3s@dOR$D#nVfv zVqsFVdQ&MBb@ E0QVVS`Tzg` diff --git a/Tiles/TransferPipeTile.png b/Tiles/TransferPipeTile.png index 894fc9ac758baeb9f9d0efdf65e69ee9fada3ecc..3b1cdcdfb42eac876c4608175960c350b840b861 100644 GIT binary patch delta 490 zcmV3V-Q!)pa+44k5t>BvK$F zA{7BR^r+cj1dm}9nhz%% zL!T!(h$uK_Iw#n@LP^3m9)J;t2qToD5SF3ADaHH>a}1;O=oMnRB9R3$f*gA$)EU7n z+z`GNhsbM-+4>bT?gnLVIfg zM*X&~-~Jzp9RI8_IgLV|B>B$Y-dc;TeL1?eKL9yOMQIhPF@4J)bpB4Hz4=h!Rp&oiufuTtU;)Lq6@_z+G#xCqA570K~QSD@1*X*q( z=4|6QCLh z=8ogkO3N z;idpzh8%ffW2vMvmayJcKRqWC=bY10bPGJVGx7f<73DkV$7y+Y?b=4{-V%9I#-uvT zUG-y0w6GSWG2`z5wFuNo$DKxGp^9sq>R<<;bH|L9U@6Tf%G! zyT%gsBuJJpb0EVhOLa32#BImGYg58|sbzy>(A;R;;dQbY*r7dBC90(m`7zX%!KELl{|2&|CW94v`bacrQ_Nb0T zjxNL4E-Zf+W*v!O9f?#FvW`T9feEWb8?x{RY3BNjk&sd100000NkvXXu0mjf)i7yS diff --git a/Tiles/TransferRelayTile.png b/Tiles/TransferRelayTile.png index 157bb4d659657d91ac242d025740f7e892cacacc..18629c891ffeeb6b3632cefa67ba35b303888fc8 100644 GIT binary patch delta 243 zcmV|qF&MfnD7IcKFu36_)C5|0OcCjjJ}XLjt%()Ik-~^b20q1{OQ6a0OOEn zwp;V^V$M27Cx5M#tliSPXz5BBhm4oECl{bnJODVKE^ZtTU@MMQpZ3>Us7hsSW$DBN zMF-UhoKF|mE)pV|fl`VS<;tHW7*;oRdIx0NubDBmcH@xo{Mv_Irwh=&!&ocxVd0z> z9dk=rll1D1+DQ%pMh{W%7#s!4V#fS;kr=e4+vK-IpMUACI(v%5;EuAFBRMezNlj`g1+1S|F+1WWb zI5;^uxwyEvxw(0GczAhv`S|$w`T2Q2x~&1~Wh@Eu3ubV5b|VeQ(eZR~45^rtoFEWl z6lNrrlHg$ApkvURV8G#&Y2j>e#Z{p9p-|Vc16N$d1sE7?Iaz;iyMCe)sFA_b)z4*} HQ$iB}44x_l delta 258 zcmZ3-IEiV3L_G%^0|SHn=l_X7iY>|8-G$*l2rk&Wd@@jkv%n*=n1O*?7=#%aX3dcR z3bL1Y`ns||Vigo%k68NS?OT(OnO;Fv-c`;y5wQiav6V^aRbT)v=Gq_F6=>aCP*0)<}FPItYy@uTBY zN}^%-wrQ%0T3ZD|#Li7Sc&60tYbw+F=pT&MMt{`B4nB0826CIHtDnm{r-UW|G`n1) diff --git a/Tiles/Transitions/Left.png b/Tiles/Transitions/Left.png index b55acc88858d456792722ddcd59ead3bd1a6f57e..c3951b7df1e63da03e1ddb1ea8efbd298acd7f3e 100644 GIT binary patch delta 159 zcmbQvw4QN-L_G^L0|Ud`yN`l^ltF+`h--3wj);her>AFBRMezNlj`g1+1S|F+1WWb zI5;^uxwyEvxw(0GczAhv`S|$w`T2Q2x~&1~Wh@Eu3ubV5b|VeQ(e-q345^rtoN$1Z zB~YTNiKofy1drqN07uni5w{iH3pNTFF|WBH(b||PVWh>tu(*izx5wM%JAgVFJYD@< J);T3K0RVZ@E1&=X delta 264 zcmZ3_IGt&NL_G%^0|SHn=l_X7iY>|8-G$*l2rk&Wd@@jkv%n*=n1O*?7=#%aX3dcR z3bL1Y`ns||Vigo%6*)6a=QU7BHZvrm#5q4VH#M&W$Yo$~E=o--Nlj5G&n(GMaQE~L zNYP7W2Z~pFx;TbdoL)NFo9~DLhqHWr;JOpMJ7n9xtkGI}X31PJ??{#u>l!B86ILk< zuO~1bi!O3uF!)~>8MjJZuc%z~l9cd*jm2f(^$$MY^sLS_uyv1X+PmdKI;RB2 FCIBmnUPS-^ diff --git a/Tiles/Transitions/Right.png b/Tiles/Transitions/Right.png index 089553e4f812f2574812636c049881e1c0b5441c..d43b310a654cd908d2fb2183c549787c5bc97f6a 100644 GIT binary patch delta 158 zcmbQqw2pCtL_G^L0|Ud`yN`l^ltF+`h--3wj);her>AFBRMezNlj`g1+1S|F+1WWb zI5;^uxwyEvxw(0GczAhv`S|$w`T2Q2x~&1~Wh@Eu3ubV5b|VeQ(eZR~45^rtoN$1l zNrETYkP$Zj1EV58eCy*UC0v7lbkS1yoZrtR}SlM|8-G$*l2rk&Wd@@jkv%n*=n1O*?7=#%aX3dcR z3bL1Y`ns||Vigo%Rd}m(BMvAen;8;O;+&tGo0?Yww6{b}U0avER(A5a2h#(mUk%-&wc(Tc z{`ChKGW~iEBpWC#I(TYYc1_c^OI`1H${25YFS+a+Q~O+8__cBP&ADI7Ku+{@^>bOr I?3B<10PZwks{jB1 diff --git a/Tiles/Transitions/Top.png b/Tiles/Transitions/Top.png index dd38343b336e21f00b080172f90ce12ac801aea7..d58da77b208700d1f4d819fe5c015e3c1419c85d 100644 GIT binary patch delta 151 zcmeBRTFy8@qMn7Bfq~)e-A6${${@fe#5FlTM?^%#)6+95Dr(ZCN%i&hY;0`o?CcyI z9Gsk-TwGk-+}u1oJiNTTe0+TT{QSHh-PQp0GL{7S1v5B2yO9RusCv3MhE&W+PEg?E z;96wJ;vCCzQ9^HF29M6Jo~bN>5)M*_nv56}p0NHF`0d`;1=PXd>FVdQ&MBb@0Mjrg A`Tzg` delta 248 zcmZ3^*ugYGqMn0|fq_B(^Z!I3#g^pl?!xdN1Q+aGJ{c&&S>O>_%)r1c48n{Iv*t(u z1=&kHeO=ifu?h;XSWXCXyblzT%?ybsan8@pP0cF-av2z$i&7IyQd1PlGfOfQ+&z5* zQuI>Uf#NxyE{-7KcoB2kmgRC=CVh%qe^!vAg{5xBi?e6e zXclGjGL-W_f7@H592MmEyu2u6GFOwh+#IcG%Y1a=lh<_q__j+kGFY(HXpO2=Av nOI)jFPv|N1NqoSourceGroupName:BeckRefName +# Where back ref name is: +# If the referenced image was saved (target[0] != $), then it's the name of the saved file. +# If it wasn't and no explicit back ref name was given, then it's the name of the source file. +# If there was an explit back ref name, then it's that. + +# When saving an image to a folder that came from a back ref, the name of the file will be the original source file, +# or if it had an explicit back ref at some point, it will be the last explicit back ref name + the extention of the original souce file. + +import json +import os.path as p +from PIL import Image + +def processContent(configPath, v): + with open(configPath) as configFile: + config = json.load(configFile) + + if v: print("Running preBatch script...") + execTag(config, "preBatch") + + backRefs = {} # BackrefName -> (image, original base name, modified time) + + if v: print("Looking for backRefs...") + for group in config["actionGroups"]: + for file in group["files"]: + if file["p"][0] == ">": + backRefs[file["p"]] = None + + if v: print("Processing groups...") + for group in config["actionGroups"]: + if v: print("group: %s" % group["name"]) + + inputFiles = [] # (image, target rel path, original base name, modified time) + + for file in group["files"]: + + # Grab image from backRef + if file["p"][0] == ">": + if backRefs[file["p"]] == None: + if v: print(" %s was not processed" % file["p"]) + else: + if v: print(" backRef: %s -> %s" % (file["p"], file["t"])) + ref = backRefs[file["p"]] + inputFiles.append((ref[0], file["t"], ref[1], ref[2])) + + # Open image from file + else: + fullpath = p.join(p.dirname(configPath), config["contentDir"], file["p"]) + backRefBaseName = p.basename(file["p"]) + + if (v): print(" file: %s -> %s" % (fullpath, file["t"])) + inputFiles.append((Image.open(fullpath), file["t"], backRefBaseName, p.getmtime(fullpath))) + + if group["action"][0] == ">": + group["action"] = "def f(i): return " + group["action"][1:] + execTag(group, "action") + + configModTime = p.getmtime(configPath) + + for (image, target, oldBaseName, modTime) in inputFiles: + + backRefName = ">" + group["name"] + ":" + if target[0] != "$": + savePath = p.join(p.dirname(configPath), config["targetDir"], target) + if p.isdir(savePath): + savePath = p.join(savePath, oldBaseName) + newBaseName = oldBaseName + else: + newBaseName = p.basename(target) + backRefName = backRefName + newBaseName + else: + savePath = None + if target == "$": + backRefName = backRefName + oldBaseName + newBaseName = oldBaseName + else: + backRefName = backRefName + target[1:] + _, ext = p.splitext(oldBaseName) + newBaseName = target[1:] + ext + + if savePath != None and p.isfile(savePath): + fileTime = p.getmtime(savePath) + else: + fileTime = None + + if fileTime != None and modTime <= fileTime and configModTime <= fileTime: + print(" Up-to-date: %s" % savePath) + else: + + # f() should be defined in action tag + processed = f(image) + + if backRefName in backRefs: + backRefs[backRefName] = (processed, newBaseName, modTime) + + if savePath != None: + processed.save(savePath) + print(" Writing %s" % savePath) + + if v: print("Running postBatch script...") + execTag(config, "postBatch") + +def execTag(config, tag): + exec(compile(fromFakeMultiline(config[tag]), "<" + tag + ">", "exec"), globals()) + +def fromFakeMultiline(text): + if isinstance(text, list): + return "\n".join(text) + else: + return text + +def main(): + processContent("Content/content.json", True) + +if (__name__ == "__main__"): + main() diff --git a/processContent.targets b/processContent.targets new file mode 100644 index 0000000..a2ca251 --- /dev/null +++ b/processContent.targets @@ -0,0 +1,19 @@ + + + + + + + + + + $(BuildDependsOn); + processContent + + + + + + + + \ No newline at end of file From f1aa7818a61020fa98aadcb2f79d2a8c3e98d63b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Fri, 21 Jun 2019 21:04:48 +0200 Subject: [PATCH 19/33] Removed xcf files for old sprites --- Items/InverseTransferFilterItem.xcf | Bin 2568 -> 0 bytes Items/MagicStorageInterfaceItem.xcf | Bin 2719 -> 0 bytes Items/MatterProjectorItem.xcf | Bin 2445 -> 0 bytes Items/OmniTurretItem.xcf | Bin 2571 -> 0 bytes Items/PlayerInterfaceItem.xcf | Bin 3086 -> 0 bytes Items/PneumaticActuatorItem.xcf | Bin 1421 -> 0 bytes Items/StackExtractorItem.xcf | Bin 2492 -> 0 bytes Items/SuperOmniTurretItem.xcf | Bin 2516 -> 0 bytes Items/TransferAssemblerItem.xcf | Bin 2637 -> 0 bytes Items/TransferExtractorItem.xcf | Bin 2615 -> 0 bytes Items/TransferFilterItem.xcf | Bin 2631 -> 0 bytes Items/TransferGateItem.xcf | Bin 2704 -> 0 bytes Items/TransferInjectorItem.xcf | Bin 2628 -> 0 bytes Items/TransferInletItem.xcf | Bin 2639 -> 0 bytes Items/TransferOutletItem.xcf | Bin 2627 -> 0 bytes Items/TransferPipeItem.xcf | Bin 1709 -> 0 bytes Items/TransferRelayItem.xcf | Bin 2524 -> 0 bytes Items/TransferRelayItemOld.xcf | Bin 2479 -> 0 bytes Tiles/MagicStorageInterfaceTile.xcf | Bin 4468 -> 0 bytes Tiles/OmniTurretTile.xcf | Bin 58149 -> 0 bytes Tiles/OmniTurretTilePadded.xcf | Bin 103323 -> 0 bytes Tiles/PlayerInterfaceTile.xcf | Bin 7655 -> 0 bytes Tiles/StackExtractorTile.xcf | Bin 1208 -> 0 bytes Tiles/TransferAssemblerTile.xcf | Bin 1193 -> 0 bytes Tiles/TransferExtractorTile.xcf | Bin 1202 -> 0 bytes Tiles/TransferFilterTile.xcf | Bin 1702 -> 0 bytes Tiles/TransferGateTile.xcf | Bin 1779 -> 0 bytes Tiles/TransferInjectorTile.xcf | Bin 1214 -> 0 bytes Tiles/TransferInletTile.xcf | Bin 2149 -> 0 bytes Tiles/TransferOutletTile.xcf | Bin 1172 -> 0 bytes Tiles/TransferPipeTile.xcf | Bin 9187 -> 0 bytes Tiles/TransferRelayTile.xcf | Bin 3011 -> 0 bytes 32 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Items/InverseTransferFilterItem.xcf delete mode 100644 Items/MagicStorageInterfaceItem.xcf delete mode 100644 Items/MatterProjectorItem.xcf delete mode 100644 Items/OmniTurretItem.xcf delete mode 100644 Items/PlayerInterfaceItem.xcf delete mode 100644 Items/PneumaticActuatorItem.xcf delete mode 100644 Items/StackExtractorItem.xcf delete mode 100644 Items/SuperOmniTurretItem.xcf delete mode 100644 Items/TransferAssemblerItem.xcf delete mode 100644 Items/TransferExtractorItem.xcf delete mode 100644 Items/TransferFilterItem.xcf delete mode 100644 Items/TransferGateItem.xcf delete mode 100644 Items/TransferInjectorItem.xcf delete mode 100644 Items/TransferInletItem.xcf delete mode 100644 Items/TransferOutletItem.xcf delete mode 100644 Items/TransferPipeItem.xcf delete mode 100644 Items/TransferRelayItem.xcf delete mode 100644 Items/TransferRelayItemOld.xcf delete mode 100644 Tiles/MagicStorageInterfaceTile.xcf delete mode 100644 Tiles/OmniTurretTile.xcf delete mode 100644 Tiles/OmniTurretTilePadded.xcf delete mode 100644 Tiles/PlayerInterfaceTile.xcf delete mode 100644 Tiles/StackExtractorTile.xcf delete mode 100644 Tiles/TransferAssemblerTile.xcf delete mode 100644 Tiles/TransferExtractorTile.xcf delete mode 100644 Tiles/TransferFilterTile.xcf delete mode 100644 Tiles/TransferGateTile.xcf delete mode 100644 Tiles/TransferInjectorTile.xcf delete mode 100644 Tiles/TransferInletTile.xcf delete mode 100644 Tiles/TransferOutletTile.xcf delete mode 100644 Tiles/TransferPipeTile.xcf delete mode 100644 Tiles/TransferRelayTile.xcf diff --git a/Items/InverseTransferFilterItem.xcf b/Items/InverseTransferFilterItem.xcf deleted file mode 100644 index 6d13d5ce08bd6f957e5818380cfad8513f5c3d75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2568 zcmd5-Pe>bC7@wJ%u4^{LWw(Ycd&n&*tD!v!!Xot0(;l(`Jxv%=n@ncS#4<^tWuO7S z0fiI|3Mo-Rw}*`Xn#6wa8^PbBu`E7*Kwm_% zU&L*PBsn1_heSnsf-VMmmI>$bFEYtsZYm=^xz`s?i4#+qDJ2-bn1&SbaUys>a{pr7 z03O)XJq&$(Ln!5g?tp|o&pk~{NLexXfaXHyi<_LbZ|GT8$_J(FL^_!x@l&Z(E}8Ef zkVId1eeraMk~-Lf1&VN{MJF}v`|bUo`E(-x{x7nCBM%(6(MZM5(Ryu6R)1?_oETDh zvWAR4G>W|r{G9{)9N3ST>`TWt2xz>s+cwYrY6E(5T+995?c);U{VsFXAG#H4hX*6Q zk+WYyT?iy`z@VETx4o!wgE3$Q->ZYskFO%I}VlnUn?@CL$~4gT`JNpt8PR z0VwY^4$6ugK_;uN9`4L&0J|qAy8znE&f%(>{ld&|VfM;y!!R1V7`3!DPZ_uc?e!Cb zGukKXh%FcY8|ru8$t}CPz;erOnL(%+6_uO;w^wQ`dA(|Fp3P zu(*N9TvMse3VMyLS$gFaz^e+uExkZ>hTPlD6{4n(+REnJnqHtfLuT`J5qe<1_<9rl zRArj3uM}~og$3NNxT5PCRoUD|MFSR2m$$cdZNzM zwJKY+bh{0RJAL4VYuz(w_x^7><6}`aYK;kbfV?n<*o^U1XR&~f^L_Hi0AhYbW*|m& z7WLte)C!D>0ODu>amyE_Izx{04j0JxtT6257+;j?3>ojE%ryC)O=li?k)cW(^96=8 z0Mhul1dtgH_{ONx1pjDZ8eqiZ83C9sjQRztj(iNWOCte>35;Nr7|TZEwTgMzL(VFjT|EyUr>dN;DM`@rP^sUw}4Gv7I9 z=FH5uGn>*fGwi&QWRqGtK|wie3eoq2*lbWe3u1rsR@W*K&<}!if%Jk5m^$%$4*btT z+n0i2eM&BqNo0%Ar-<>u>3l*iCRFwVtvJn|J$HVBSoRsNT1HMKe5t&q5)8a;l($g4 zoKCQXTv}6)^?H*jC6~_SS+CLf@~ODYjvXH}N(aSnnvOweyhEsEXCJSS(D}lQtZ3O3 z>$m0t@Ny^6#C)?^t;lLwWjawH@wsHOkSOjZNTS=J2GSZz_Q5Q+A1JElN2>>|bw*@Y z`>TsZIW50ey;rQR7l;#0Dk$9`a7aevQw^Qkf!1#7B)Z4cp`iwwbaJrdfQir3P59m> zy{}1s26Qs6RrY{F;z?;HO9P?k4^72d3HZ{tS}}T!^bb?@J}2$04|{0OFT+D_kH_V5 zd)zLk6Q*|}8r4H8t!_$KRuxf*t8oD#C$UJ8NLZq!O`a3ac;Dj1=&mKA$P(&CKl_=H zx2L2iHUlEEzyYlLZFcqo$8#1O~It6?>(&96=n$ja`OKAeasq9}PFKNQ}Sq`Ff?YyvQu-vm)Xo(KN^cAGz`E zy#-i1&C_VhI4C%dn5=zjWcVwN#&!=xirS)&B6#|G7IOa$N1|a!%?Rm6e{itVz36x7 z_PY+c>iyKAze5%Eaa75Dk?KU1xwVBj-%gde^2*gvD^-MCi7Dwz<~velZtZFY|Ai{SKoFss+n3s@ z@`eL=7*fSHssvtl(qkQ{5`4!&Q6~aSK<8Vj^4jxoh3r4V9I2fMwoql1d>M{+Tc|=X z9k6DqoN~jR;uv8@^cN>vsdACsLyfgjB|QEDLo)0{mDA3X9jFqV3jPbKJQ=r&L6wfT zib0i5x5^VjmHOR{fsO4if7%(?+1~j7)T{Rg?o(eG4`kzifIOBxTP%0wa$K52gab9A$eZkP>)^h zb@#YB@)dawr_J5t?pNnY7j3`O+OF0KI%#~t(95ZOXtjQ!HJVp{-N4pCuczJS>T{~~ z(X}8r^rfI2(_Zd#`P8mHTc_QN{ceZDYxjM8KBl^aA28xzA{z=bLAIr0*@g@GcAu@-XD98mllR#v`)noHc;D!V2Lso`5&d37 zp9Mm!Q_6gLaHwU6Kaa5i^b_eWUsPIJ#8V}W;l--X&MKbeQ|LB-&h74UIJ(^Kb39E3 z-@dRgKQ}kOuwX|YYEPa$ds3V#B|F47`s4f|OQgr*_m2(^j{5zQ4|R1{uGB?) z4l9+1C0pbz%M%vXB2Fwv`|hmXd-(9)>K)lPjRXSEo&^FUCY~lzmTdFs#^hs0lD@BtD(+x!PQfR+|qOo}|YU8bcYfTk9bFp%~c0otQ&B zanu4imhO>MTMgkEo>4O8jFRQ|NVP2$Gyjr;UOk}{b7q!jpj6*mKqv$E63ulgLKXBM zl4Ul-eJD{|Dpe$z+{&_9)aVyl3@UP<2t|qxpiJJzLdYakS`7NaCqJO7fB9aLv9U6N z(!^?up>n+%WccZ~GE}h4&{&;FY3$KFu0)68EXTM;NgRJP7S@470d{AX)0j*e4ta9o z)b8#Lj^%(SSJB<=pPlu0cUN%8lWU!yfBf|6>GgRyLZ6T zz(sg+R?E!bg$si-7AqI!$u%`h^))o~PBk=P40*<-5l)qptR)i;a zenaAUV&#V{)uk`g`pZ!z9s{VGa>`mURhi7nS>78al~%f6G9sW0EhQ!v)l7zN}hh(oVl4GF9OJcT-s zXLNdc)Z?iWkf-2USXc=LR~8mr=tJ%0jg8AvE!e*2&wY{|5}J``bEN0u6+DBJ#xCMOHwbg^PJI&&gU&=6P;X;;9)w%}G2h z;~L~ye@VxYlw1_aO+gj@+*S{nc;_XZaD1#BW$H7adW+kf@xaq{NoTx$2BbTE+l2bn zq-%2_PyO)>tp=50%8`|ET=$VD32Wd$2^SD05z_|-roj=X2L{sNfgqEBnf;cinw?$4 znzh+kJXFN&_4OC%zgS<-{;cv-x0q_Rj$qA*)tZVu{MOcc^xto7@n7kQb|(@sj*r6! z5ewq^czCgifsiKRYv?rjhV0FU!ct(bKtt(6_;+Mi@jH!#b}{sa0$z(dqZDGQ+4nRS z)}2*p;H(UfL*j2KLC7id5~WM#Q-sJVIF&UaY$A%t9{p7SxiF<6joF+6!f7_+?qOyX sGpnI6YBd}};h(rhNC=k-!@5jJ0q1l0qYuGIAen|^Ix$Nv|QC# zE}tnE$`v_kO_P=UT3U{M60=4hFy%<6D0Hn)sH@9w1{}Iw-ArfHQeK{N&m!`AKhohQ zw@RuetEJ4kQsww^E>~5wPJ$fWOWDk;pNv;J9qW+^oSC}Im1ld}+j)@*W-*E%eQj-LQO=qHYcET#$P z0j9!~Tr)fcv>-2oCJ}@?19v@ObQl5jD?eW?Z{&nrOZj%EL~old?sF7G&VK&uW-cit z>*=CGYb#E-Ch~kffA?y7Z7sc(b)~lLL7QX)f+#e+gy}6P~CCi=MECsT+Z{H}UR#uW5rH*pIF>v9hD^+bv z+^SdaTyS@5urdY<^U{1{fog9*1J`i)jKnpR&J5dJi>5hx@BtK|HD_~nU5C)Fs(@`T z#32a#aq!Z6H+nJ}jZF9__9M~gNxBn!iA$GPgR70pml8gZBwxrUaGQ_e+u!mR*#MOW z`n3E-#N7GM+ie`DfBp72 u@lF}3RA}O9zQ#`zph5`HkRA}c7mE+Z4`TNSK9FE%7muK^yMxpCA^Z>8_*-BA diff --git a/Items/PlayerInterfaceItem.xcf b/Items/PlayerInterfaceItem.xcf deleted file mode 100644 index f4f84447ce7e2eb0e73ace312363684da31a5ee4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3086 zcmeHI&2AG(5U%d|u@l=0ANb`>U9!~ACszwx`f~id)6E9`k87j9UXS2Z!$p&bgs&PeJiT!>q_gQ))Hmd~Ep7a; zh4Z#(IfJa)0TpXeqS`Ce6hAd+b}o`rF0#gmGxihCmRZT#ocjfrx$`o~=ABm%Ag49W z!_^iFLSS8$Hkab|`uCjyj&JSELOC{K@I&vdm_W2S7ZdZNp`BquRZ6XzQYMzbC@7(X zoKX<8IYR&%86a|;b`2sYaqcS4HT11`;QRt>i($8kC@@JZHBcSSb?6xWDyP!8-|7C* z9}Qm&b~vT^!T3_wMU`#&b>VAaId7b!FCEuK{PvaTjU+C$W?OywoOY8i)om{cQ`QXvM1&SqJUWgWw+GY z-6F_`Gk-*EnFGIs1(+sux2zN?kwM8vpAcFoM?PDVici->tsh(^aA)>;MpwzD3SA}E z5tSVIC6P3sxI7`6cYr$9l`X5HPzS8;pr zE$b8;&ztt?2oQ;vnTFkScf(&NGMddu6|s)m_$1U!t@>;8WeTgN<0Ij7;4jUjw*0zT GgUi47>V?Jt diff --git a/Items/PneumaticActuatorItem.xcf b/Items/PneumaticActuatorItem.xcf deleted file mode 100644 index d823e7e39578eff5f2c84962f0047a3c3b01ba1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1421 zcmdT^O=}Zj5T4zpo9}GXG$P_*FJh`hnyaFRdMJgKiXt9FWV_jH7V|~2rA?uvQ0T4L zi(VA*&_fR@UZmt;4?=U&lLsY;^iaHuVnH|iI+N};yJ`FZ4$RIo&&<3tv+pLFUaUw< zN>0k@1r<=v*h)B#%5nHepav#40Z38CP<^(ZvMuE$F@FkeRKsJ_O1W56O9uKt!O`ng zRW{VDw5S_-X=-}*21Q1?sd`b?)U;OBv&3OG2dSD-FQ`(jT+p-Qp;S&&%7t=ON_9=T zs?E#N#HER@3;-EBG>)b714^B^^lw0=OSOuu=p{|cIK7ap4*uXiK8(J_}_@pAkI`3=~CLw_PEa=-}z zU!ddXvC*%Y_g|lgAY8pY$IqF!W=|7$_Xlf^Lh%0DGQVuDE}kRq%CndC2!!&R>-@U8 zv38!gn_s?fk3gjHdW+vOUp&tcckegbO+f5ntI0RbcW*8ecWrxTHQL8b?|phK_SMRa zwGw?jW)4ey>|2F9(usHl80%cC$?1Vsv>f zpjeE|g{IXH`euUu$XsMW(MOj4g`m%?c>42GGHx-nlB9-E-z}kaU2(U8Lt~4ty#7!) zsL{3x>@$m~{`-6pdi%It5z#^=@trU2iE zN1cp%F5u!qM7c^G_Hyy-KJIV){V{XV+SSojgCx3itgcyK8y*=M*0cIgLwY?p%3WB{ zjan_^))%Jm>T1|zG9$~FL8l{%Va)Bcxm_qLidlqskK6W}fhhVhtIdYsLlhRB+FdVg zV|pBs@N>n1cU@w&sRqpeB0D__X&EO&$U}o{S7xWO?^?!JX(@ocZOfLgm|-5 z50BkR>v0P8aN0d+h*r>PL-GnDo6|yT3uU+45sS*C?xY1)T6P`u>ZONAv?DIJ&FO|V z;^T0CZOCk*{e58_w^&D|{<6AH`k^766l#2)M(n_|C>fLI05tsRLS^!c4K!7{4&m3x{Ve)lKcsWNe#Q zt@eo$0^3!p$s?TEp^<53YFdP}u$~(a8+_Z;clQYuoR9q0p8!Srwwsw=DG448O0PS^ zuNy>sLaK+yK0)ho3iX(=N~8$7?=wsg{RltVgA_5Fy?akpj0fvXTMO`FS5n` zQn7SUE}Myz&&HSECStt7z{g_3N<8_VDhKa#!Rr8d*WVxDm{M}80U&R(gr#D<5ujL+ z1g+czi292{BS4Z8YXnH9$Xf{jQDvWR1c=|q_ZJLufDDBO-!}E#eL@lEBfk|ek>w*t z{YnuU0TQHo+yrPvs$e5PaT)<-CjgbM0Ggs@$Gy4^P%uY(RW9eVsTCnc`lJ$%VY}a;zodc^;W2cG%w|Ks5jx)hDBpTA70V+6Ze*i z#d|;JIWO`DH5YZR4N`a4ZQHqS(*Oew+vBi19JbeCcRFkz+5EkY)3kGICTXv9L0 zn6;VLfs?Ozr5O{yqXeuB)hOEG11Y3UrF2PO`^4UGgAm|%`Ms1rwQHBApL9|p#rcPD ztW*5xgy?EwBx3%Id4D`|>U+5r@x_r-+GgT0>>i7~-xr8Pn^quY@LT6-Tu+`k6K~!h z!A^%Iby5E-6?KM&kldz;+LN(F;@s!q4Q9LpA?Sm!EBtrJ7X<7Wr!4&!`e88UrAk)3 zu|ep+;O9jfDad1VQqV=IJok*rg%SIN8C0}(l;A~878nITR7P!Tf3!RLazB7)Vt%oE zu{uBD5xaW3n23G&-zY7C+(Km;M5n^*uN4-c`mZIXGrUz|i>fBV)6GiK32aT&BnD_9 z@#8m1EKoYO!mFDVrVr<>z#_aA_<#9=!SX#qKU$A`bmZA}>_&E--?gFpbYHs|LnhOw z{?Gjoz&J|CO2h79RwAo94g+QKF&REvaj%%qknvf0AixK6nW2ZcWs_z?K)@=yaquBQ zYYz|JV2FVLq6Ki3kdky5u*`h}aS#b{QZm*H#$k(H0qeY|?KOeLtC1?am?*wV0PczubG+kJ5P O7Vbdn)@6Jb`{5O-zUrg^ diff --git a/Items/TransferAssemblerItem.xcf b/Items/TransferAssemblerItem.xcf deleted file mode 100644 index e3eaa947196ba60aaf9818d81c329cda7f6600a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2637 zcmeHH&rcgi6y7zkCV{B5O;Z_F@*0dG2P*OpG`9IAsIalUJL_HS-JRXpUl{BNjG8p6 zlpDEJ>Ve+Mp@+&)5e^(8%%8%kJvyLDt*WYr0DZGwH>Rah4?Xmdk>Ad@?|X0N&6{uS zcZ@HuwpDn%r;<%ujth<&PV{gMhjZsm2Yd9iIPZKvN%YKEkF~b@&IJy}OOv7&l7$)YUE_}NS4|L(dE_|m8zXO=A+Zka1bU!*e%IMSru8`+5 zZ%T*Q&==Qzp)cwCF!TFhEEbK9CdS$E%TYeWUycF#B{33 z%PI@mO5=EM%dla!(URZ+V=W3&*|O9nv(enE%4Mh^R?Jhz%Sx!In})awFK$kRlOzao z_u!>q5L^_CN`3FR;pONVUWNcD@Tr1_F zmwU&}K4|8)xg=}U4b2o$R{r`Bn)&L*j+{kEZu=!k*YL)s=k~ZQ&(U?mz?6t78g^Y% zlkp&x6QfZ!dcns*NEeBbXit=l zT@Esle=oK&i0x+yJGR}ewI3YMA_S|Ns+p#GO>0D7_#~C?NuMR>L?j4rq*fLp4A;w@ zGm%0`4E#t!E3@%lhGU+wpZ1N-mQ~yqn~Vx$@S$*F4u0@C#RcrO#a5n=^uZrzayFHk zO%B1g7g^BTV#7(u7@ATHtYdjsH5H;&%W6qC6k0X&P^DKsqG)pw__G*F&ZRpiUDPR)fJ6MX zI|iXlTw9T#pFPme^WOMON%dFq)m9dUS?K;NCL)x()kaKVA)V?;wH_{Ft6Oaj@f;14 z5NYX}Nv^9+LMTuhdaJg#YWtt5?c$_$diV5o>!fvc@9Ls;3QzX*!~fhaPU-q|8`$l# Gb@B(9)~!7N diff --git a/Items/TransferExtractorItem.xcf b/Items/TransferExtractorItem.xcf deleted file mode 100644 index 45824241d2ed3e36882834b80d9cd13349139438..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2615 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 diff --git a/Items/TransferInjectorItem.xcf b/Items/TransferInjectorItem.xcf deleted file mode 100644 index 2f3cd386eab99f13b1e4cfc8be114ed5b0ddb767..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2628 zcmeHH&rcgi6dtds>n0>^A)#_0cs7;|sYI1XL_$4O2qTgTk+xpX&a!Kq{o%2_Dd5OI zltfiU#1Sc|SV|8F31M5ph|;Q8)W3xPz{ecY3Z<03vDd@~`_|qv(%bp`zBe;(-upZ$ zd+7;&W+idbUStTy4aYeC6wKvZhJ9Zh)_W^?8JD?zLZi9-^F@YpnMFHs z`_gDKWn~sKSv*>w#_9g_|j*&Cx&G&r|{k8S>Sx$ z$?5pU3d?pL+sjs(<@owcGMQufvjq9-i>`*JeJQVlGhDwm5zNj0@QPlZGOX`Y*-T-% zUN*rA^T5oza|-5lFc1I8!7!nr7JR7%Uv9y@E%-_c{unUdw>drpz|Z5Osf=bW;1cXQ z^DcFW6@F~@2`~BY8|b)K6#f3dh%n*`x;{S+iDGCZD7wTyAs10mWjUS{lE166k!0$8 zA`Kr!1V*(I31eZwWMBGje#PR-0!zm<6&OEFBrP>cBVmx~^{}KwHC>@Ht}`Z$%JE4r z63`3un|CrU6PY+1Gs!%?*9SU;!u8#wYE&~H1rWm2GN}BZA9+CfZV&2zAX6jFLYz^x z_;~;LOn4BX!SD>gxE51yaV92B_Mw@_I)sJv$1|vJQi>7C0aJb2i#%anfvp3I9`+#b zv`&EukO@fGJs1jHMd)fEGziBHOb`eQ5+DC}xFNG1^cu4Bk>EKm+@|U8zEAhFJLk)@ z>Uc-3!Cb71X>rC+c`fDfW-Z6%c@lfnU=k)Jw9$b-p#D^riQ@EznWmvh(*tnrX-P9I zqtUf`rLwogm&!H4g(Ua|{5B8_2CxeY{7eM7J9%)5u(QBWJR; z-Q6{2<~Fi(WTCDySt99T*_@hP+1p#0oifYCG?D5mlOt?%e~ZmVR;$(3$Sm91-((S9 z=V4k{uT;0!R#snCDz8>o*0!sa^#UD+=RqkRly^$Id(}#*RH^RmmUhYqMFn1s?o9XH zaMuiQ$EKJEQYp>|TR;|h8T^FDQtyx>ZnoYpicQYaP+ z(9t%nxv5J&rV7YXrtb5a8y*@O?y9->FWdW8{JNy^BuZzn7 diff --git a/Items/TransferInletItem.xcf b/Items/TransferInletItem.xcf deleted file mode 100644 index 2fae6f57afbd2885159bf42f848ed19abe9c51a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2639 zcmeH{&u<$=6vubm{GxT#mZXJ5NM4uNq(Z5h2oN`llM~^MeEb07p)_BXDUi2m}&M!y9|uq^h}9;?j}c&fE8$ zH*a?4GwZk$lkA+CV{>l7W}x+YM*ZVp2*INZtRwOmL?|b;xxQ7RD5=L%GRfCi@oGd=h@M*Xo4!oYD3)#-LVIpDc7Pg7>$_z^7MSc zX3M35Yn?vapL5Jop)|$z*Sdiz$I#icXU^7I6KBwqPD85EB(lLx$Jbj%9}{KE(QBL{r{0l)Kre-wN=Z=INavcGf~>wE9fnC~O{-pl;$4~9c*Ai(-qU*I1$6b=SZ00n=CrLZJt5iAH8 z3rP4L3x-MGBobtppp@>!XTkX5^mbYn=|_s%?8@enlhh3j$MBacF3)LsI|NmDVG?rkNzJxM62E^r9px2EuYF3& zUD{f5W1MCP9M5sQkN=6#C4>xx=71s)h$nf?$il8u#WZJ^H$mYAA|kQM6CJj;Cb2}N zO8`l=kagb_IgIeHJP{x*z~gsTfB4poa-yQB3gOZyeXlMBNy@oaxt330%yWoCybs^1 zD`8V6&UoI)8ippMIc~pH*v{fqg0tYn4M|c(*|berriUFQ63jzPL%;%7>Zc-4K;#(5c+{5gy<>0NpQj=%jQ{S4zRygHFvz zu&F;QrYedWIl=Uum$6i*&dMgD@pufyQ2cH>+5;z%=G8iN+Sv0)yIQ;Mb$7w7Z|ND; z>eLw{2(J4B#31I6b6Op^i?I&I&s=6cXpLy}T>A84yn|_Z>9wK3p`llYj=|-9Jtoyr zE5X?Iw+uze$QtQo+Fwy6548g1v_*8w)``R&Z;fyy>!D_iwKHvRsuVTMop~8ce8xjf zi?l(G3?u<+a76p4U8Fe?nWC2Fu#|m>nl)LgBR4~B+>@H2W{vt7bWUo9nmX)fI!7{1 zP*dZ>Z;VK06Vx#(+*8yZ|EvA~sO@f7ce;1(SGTKsC--)%JMct1 S&pmP5-J$c-GEnV7b^BkwFuqa% diff --git a/Items/TransferOutletItem.xcf b/Items/TransferOutletItem.xcf deleted file mode 100644 index c53216fd23c4d81ffe11b4d98979487f023ccd8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2627 zcmeHH+fN)-7@wI1wo;n5(pDiRJKM`bV`y5dM&pC9SV==*VQ1!?x$NBM%rFWpg+*zj z#`>rjQDc1QwuW0oicR{8e}n%3{{bth#%O%7fZv(DxD=ZBP~UozZ_aPN`+Vm&CkV$T z_!-yd{cw~pu-Yp^@o^BAg-0vMq4ZoskqY1wAPpcfkW&>*{Z4{^AM8g0NZaM+$HvHb z0p1yEe71Lz*ahP8?}vpEzVGV55VahOT*EOtAYH*^=usVbvrOky;rb}yr}CqrcfPsP z58V7{evzW=93w${4j*uxDpZEPKQm8dZqxY-In!TZP4wc2;t0LH|=R+rYIBmP{29x>e@n~#Z z#jOc;dOEuxhbox5KU2Z5F)!5N<~n@14!6|dBX#&FV4AnO;s9tpx~j~m_5vy{j4c1Q z4!+!ndv)CB^u3*V*pf^p*u!s z)301huYsu&$)czZ9%Y)Dt!^{YU|EvX4EzBN@px0LsYG3)cyKKnI^OP0$I_+l^pGM& ziE~QX@T!&5Vp_?ta(eDGt?1cEp{XvbNaCcAnOmYxyb(XeFbPcDvh8(ZStfKL=QLA4 zL!%rEMGd?Wdak307>TI%1?567>xzs;Y-^I`;slM!X{sr}VZ36fNR&-qmvoDMP6B!m z@c{Jjk}L|6NxU4CDu1Zm-*&PM$aAdy_ywf0>hD+-aCubvTdfSs?6C0orSV0iVrW6p zDif2kXW=IJB%Vf+Wl5UnIputYsb4t+2l?O)Al%~{q*0MX2>!UvI16QF$;Unsu4{^cHpx< zM>zjMKx9-S+ORr1UyK*G=D#IEl|5oc`{u{*SJxWXw(c*FWXrxVkRk2Mm4)w$jm1*E zH&w4Le&i58=9dCbMm4U1;qKDJ)qzYbQ_4z;QR7+$42y*!k#db?#9Tesz_z-0Lo@bs zEwX%II{Uds3oX7Uphvi-E7^WLcX#Pp|KPBw?BSXt59c6eI*X*eT$6*@FJ_C&3txZw z)r^Q#IQ9zFP}Z4SUR|1BSXsG!Lloa75nThBC8%{VvjtgXyl69@M( zZ4iI9e0w4zvC{gZRLhFah;N(D0aTO4;jHzJ|G!b~>81AcQhUOe+V=Y9#)*xGo9mmq ar*^kDH{i)`Jom(9dxPeuWuV&5=K4PeC9x6! diff --git a/Items/TransferPipeItem.xcf b/Items/TransferPipeItem.xcf deleted file mode 100644 index 1bbe953942165d1ef40d50154d19f80ef5a19ee5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1709 zcmeHGJyXI!5Z#MG2!r5wfsFvAab=d~i!ETbM z>+U(yZc^QecH5}mP#3fGM0=u(s&kfxE=yCX-7oBRMiF68&QuSsS`pX0oqD){T@QC3 zRCT-4qW0v^0_Bln%ABs@P^aBP*`0da?8g3ySghOZSxOLl7pk(F)vmY>xj`oL60G^} zgDYCzsOqmh-nc@39Aq3f zKT1Ks=i!kjBcBVXT()CbP965Tj;_|Z-o@|RhzAvv$4$DgQq{G!&uw*6l-EmD)$H_8 zkc)>GIS%of6^jTQ%V|0nHbsH=5QNvT3_~|;O};oDX%=LO6BQw1)(}LE6;m}*`%^`2 zU(WQ0X@(aN!zenKYGYv*xzI7@RoN34m>jbQ|4Bpq=5^QO{{2-IMV1>*G z!*Ga#qfARzqgqESGInozZnht3GK&NbEFO{R{^pnOfBNCp@6+koncG*;eiYTPg<@Nd zOlIcp&&}VNOi!jWxBJzAq&gPlKm5o2bXht*Gkd{DJ8`O`bRXzS)0304bH5EG9A%9W z>;>ie^wi|y)LRI-aXI{WA68}3M*}#yD!FypH8mIuDOGS!({U|J--I(-=&)H!5IaRb z&S-8vpV1lBFY5A6h$@7-zW({vt?zQTxE$Iq8U{WOZmvbi=#Q!tcCLOV#7Kszb6~2C zA5hs)$k)_1GM`DE*P4O~{9LicYsL-IxT*1s`o;aJLBF3xifK4i@rb4_aza!|eiUd6C7loS1OYf-F(;0GgpVvsGs>TED{dUW^%Ev|w} zp#7~V7&tX{?b0!gH^WO%#Wh(};)e9j)#1^RUQUylJXD*E@54b zfv|2va{AhEuZ%yJhj%=&CfO0nBE@85f#0Q*VKz$?myLzvx3*=8l7jY?8)L4qMV!qi z<3oKCEooVzoGT2RJ?mUy=oAxJCQ6khN#;f8+I`GQpfrK!Xg@j)rFuj5g$jT|+WS|B zPqwuc0wr@F4);bQTp>_lbi7|;9|jc97YFKD0Or4d@>T(RMf;S*prSymJAs&ubUj7GElDbiR%loK<%M5qqNNY!3- z6y^0HJy#;r(-zKl=(t8|}F zh~$WIQmoumS%#A@^&&;kb3G^?ZuJEMZLRoPzwSefM45_dMxj2$tL|n=021L65p{lAq?$x|3T%Sm7 hN?q diff --git a/Items/TransferRelayItemOld.xcf b/Items/TransferRelayItemOld.xcf deleted file mode 100644 index 652554dddbee7a10bb01db48a699d9f73d32066a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2479 zcmeHHOK%%h6rOQP39$ny4oRqh+{wdnC4yQB#FCJrmKG8__S|{e<9S_=hbD34xS~M< zf!I~8AgU=5>Y{b4I7EdXkS!a2gT)%fVnKr{BqY*s?#$S6V`s;*S2}aQIgfkJJ?EQo z+@%$C&B~*^yGR&Vrvst*6bQ@0BMQ)VDlQgFDDG|3CC4<-*|*Mms|z?6n9e|`*(J1TN5=yidTn*Zu-s(_oonU-s``U204M*B=e;a-YFg>@qo(Dkl(bZ%|vldW=T+eb? zI{1b@e_9v1N#9R1dl4=+6&pvB6KG;;atyI3H2MePI4A{4w&P?)%M^86 z>7CJpEFmVfjOUE3BCCe3=yP!Ak#`pqjSz8^VPeG1B|lE8N+Nwe4E)?3NGRB_XwaBq zTpD>XIy4j=9OwblqbQ%nlImr`+6)Vwe-wFVP8LMLOP-rO$%L7|-c%%sDkco`eNPdI zU)J>rNM&1~=w}|kXWKEjqC^AWbw-!r#^V{okB`JZ%3z3}BDNn-5A^C$4KL~LVNy=k zE{vQS9&VPn8|Ag2#F(w6=5bb&gNt2{|P#K(e491CVE!r)l( zZ*RU4jzgoN(SOE(7eI&}#E!DulL+(b5w=Xe@j9YxX>_thq388<@I}mDUrVLEijMMS z-nd&K80#H;`6{7r{P;s*4g)CyzL-jKenAwHmov8?Zr&&g)a3J}U}ofulUFg>s8zQs z>U@hX61iDfuT<8*xpnt`b$eZyYq4d)x%bmnt+usQyI-wteqYKgq&TJ(zPojJ2f=4NFas;5dxf;_ooKNsmr6+RMFzcEky0IO3i`_n ztnkYbI(b78QhcU^P6~lZ@?Gg diff --git a/Tiles/MagicStorageInterfaceTile.xcf b/Tiles/MagicStorageInterfaceTile.xcf deleted file mode 100644 index 87a9ab7b5410c2a428afd7c1262a03725c90f925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4468 zcmd5<&rcgi6rQ)k+7OC>B&~u}DW*aQOHd^zkcv3OhqOXSRja`#q+)Cwiv>sEs!k<@ zDtfC#+7rIk5(h38ryjWEz_Ai{PCf7k_*Au30QY+{v+>%yOA@$bmB+mK-kUey`@v=@ zme!xAsw=Ch)sj~bcs{ej`Y?nDKkh+#pZqEW3!eLs9>@UX6RWe|$MAp3coAWzR?6$^ zg^ddKf{k}Gn}y{{A)or8RC$(q`qjeMY#Gw7rS;`vVXC-U$}oZ>A>nGPPOEEvFuR{zyL&%42Iv<7h78sBcfjD}1!N^?Z4yv{6hw_U{7t zA_}zF)b|^uN~*N6@~p7M=gX_BTZPISf_yp*8KmCbsv)l{PhDr#!)I_6^me z_rts=MU4y9Y(mkoaD}5}gPKl*34yO_I1N%PmtZ|4{$q}fhU$g+O64hksoD`ak%Z#h z-24@9y> zkii?S-`?o>$oVu~Mj1Qk!qyG9SX*MKW3QB>uFD&mC`< z#9y6QqRD$H`qKnS+SL`5CQsJnF`eU8a*nk|9;NZ#h{W-VNz($=`ld-hYP2B3dyl5w zMOlS!HMvOBh>utiSdG|gUmn8qQ0_xtq#AtV@MGBF58qed`ic&r^O<9uxz2VD4vR_f zajTN~@Ey_EqO{Rn6Wzo<2hR{r=?vEbHmb6fzzKppG^cZYN4)KrrsbmB=45gRW2i+i zXVhvRh^W2Ciz!u1}efMnN1AElM%!a2YsD_RRo+b%j zJ5M+tWple`Qu36JVM@m^rFzAbj!{nT$s;;L)HAGml%p|BX(SFNW0ax2zHveMh|Qh{old+va3) z2xF*4FlW?i4T!B$j3vi))tpdQ*YGhth{J8aq;f<33Sb$^*}ms&-vfKp!pufaPtYDZ zB6yl4eC<5pe3T7S+A))QN=GrJqnJ{?VoFCTD|h7qog(Tf)?LcdD5f+L2a{2nq20a_ zOz8-GXJmMvr4e^h&cb&#IY}dkk601dF0t3VT!QD4oQFP1yYP*}4`7Ese9PckrX}cn z<^X4|vz>y&WD6(j%aLB+UTx{ZepK;X9%ZJOex0!C$$bgJ)&w;j-k zoOIiqOb%fTwFu^nTFnEoRf@4>xvrWM>gpOkrU!Aj?U$T&L;VV1GnBP`&)U8R_NaxK zjjW!aU35h7G)ef{dBXW98>X~lCiRr!tE#_+Db=eh2Cxpaq+Ll2V*l_xWU!UF!5O|Y zcrTb@-{z%1XZ-IM{g>L8C%;!JCx@H--SQ!Pa5+rGJVUcq@d@LDYe@e&58Pry-?7h5 g&(E#*EpT@;Zc^}Y49!GP>)|bAP-O6Ve%l!T1GwExzW@LL diff --git a/Tiles/OmniTurretTile.xcf b/Tiles/OmniTurretTile.xcf deleted file mode 100644 index b71e17dad7f27b508935e19ac1d493d2deba381a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58149 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 kd4AH~Z+RbOd diff --git a/Tiles/OmniTurretTilePadded.xcf b/Tiles/OmniTurretTilePadded.xcf deleted file mode 100644 index eb4141c95ecba5746b136b75bd174b272d2c2228..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103323 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 diff --git a/Tiles/TransferAssemblerTile.xcf b/Tiles/TransferAssemblerTile.xcf deleted file mode 100644 index faab48020a519d535d93d66c1fc4c77ab6312fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1193 zcmdr~J5Izf6tum|@)yguqHwtsi{J`StSFFZe1H%q!D2T-Nf1zQ1SAf?0jPW`I$8=q z2$<(MY!C|vz|zYb&zonDV<%>GCNINS#%35XjIIyD%LvZ#Sw+n3-L~&2fY%UhL<_Ou zG3nN!A0RI#ShgQ#qfwNWm@_J_?B`KXMp|B&@yS}uA*5e7SbzS}rsP(cq3qq47a<|?K z9g>2e&msZr;!QUJ#xpd3K(<-zL1Q zgG{&cftc}_E@0MUB(~YWa}7M-zzYq$*uYD`v~E470cbxO^~m9X9(iURHumf`|4*Jj0ZstsSO5S3 diff --git a/Tiles/TransferExtractorTile.xcf b/Tiles/TransferExtractorTile.xcf deleted file mode 100644 index 3f3891f4aded86ef6335756e8a131651141558a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1202 zcmdr~OK#La5UutY2uVf^-xZ5qP8NfbD}+VFA`+WAfaA8E7BhBaJ0e+d1SAf?8Txb) zB$^EH%I?m1#Bc#hF4yy`-&3~>ySUI-X|8iS&j>d0F8DcIDZF07caFcs-^GDn!DILn z_#2Onv$Aqd(jBT%UY6{V179S85kYkkX)Dppkk|hP(t6cgB&jV6 zeH35k^1R8~2Z7T4H`Oznt#S_DlnV%Pct3l`N&2a%tIM)G zw#b(~MwHw64d3xtF5s!h2=sPI_%nhQP?7C2Yw06! zUpBeut9(yr%!+Q<7&h!2HEcQ z8dn?EuM|7wAcNHSJs& zNt^yd4JEp9LSVw5!+G(GlCm;a`OSEmPpjF4urk{*GjgUSrc$)H?Tmv9m86Y8(lx3fvUTFk1;)8qcM94}^zW#0GOU|Eia z`Pr8-tKdXZ*V=Y)_FA_|Cp>ee=(h| zChK-U&VKA_JiDpPK~`de!X86ExfqUrmdnNU++$M`c7UCcKfn$}Gx8(R*oe_{46kEY z&?k|88R=J%ehtla!+HS`^24t?%z`WRRRY848ouwlJ~iTVMoE#F#3nV&K;x{;ovmwY znsZN1+9cF7y6$2B>n}N_R^}e8EKAKtn~<(ktLtuuuf2PeX|&Xg`}{w{?u;3IddNr@ z2S&-f+A2T$pTg7%W9fQp3L>1iv#Njd$rwDUhgtA0x;M7=Lo2(*Q*mn*(zLyc^w#ST zw`t5c-VVHFhp)YB zct@Gc+t*~?p-;oRn?ZQXjNhJO?Gz%kleatWs+_P!F|c;R+A(VkyT!wVHG*5#&<*Pl zw`t-`R0XW1L+BTGf0i}vvc~5cecOBz*7&}|x6LWku_mx4Wm8J+5iErUZ|~ca!Hj(^ zW*q7_jJw{#SY~_nnU7F}^2peNzg zbbtm<-cY1O#xCFx81c;vXZZ9)swm}Ea+6JyX*tUo#t`<20LBrFb3ER__Rjt?Muzbg z7Q+Ux_ZHK-cUXUp`LICSaaKv0&ujRMlCQrm^0dw;$?vkhOwPZ3|3R6dSz5}p$j8N^ zoKOs_IU6nO+gYA0t64cY-XBeiteRDeWMroCqPR$tlg}q+YyhV=b&S%B4W%xh{2x&1 z&GIVE%6XBTy1fv*-4wL3@%6l{lX9M2=1Z!trqg9!cLb?=J=8|RQqsW=t{uYcf1iW1 zH2YO7s_VItEwamYFw@t0fbCgKAK-<>nAiso?|b;b!!JF2=;2qu)Ypw&0NRg+I~k4( zLQ!clJ#~TDpD-5Pkw0YoCzo9D1}1^wNAjO)8YNplww{oj#Zssk^GZp#D3bSzF%_f3 zKyel|E7ipGK*uK@@@CCiwG_6mzt>Y9Ali7NqOBVPxMrzd*!uJ9zoG2z`e&%-sDO7ppumL zI+OC-@gMf*o`uTeD0}Cgyba1zxL2MHRE!&e`-sO*hXmr>m{q*53KVyHw2G4#C~o-$ t=Y1>AP@R$LtWzC-c&N^L)fsLxLISpH=NPd8ti2&Y1*z?IB(=BY{s=07$_D@d diff --git a/Tiles/TransferInjectorTile.xcf b/Tiles/TransferInjectorTile.xcf deleted file mode 100644 index 48eb7cf9a1b797cf6f58e5725d33c2841ce645cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1214 zcmdT?yH3L}6m`;wN1>uTCkBu0P(*(L2E>5G;txpUBv`ZwN>V`wJ^_gjV9E#ZWlSu9 zkP7FzcAJ*Mj+K*pe4i(FVl}wocR|D>)ejj~(}4Ik;5c~g0&6Fa-V*_Q5Ac8*a9}v) z?IZsTwh^OkCrAf_Fe$KS6x=z@Lca(lzg5K*KRds;q)1bzs(~Meoj6mHe8_fKD=$X< zkmqS%$#%UJ#X;InGv3mslf^xsA0Hj-wS;s{sEyLzl2RMzzY{9G%WwQZB{A>XS#XY) zIgPI~OjN;D5?qBj)u&OEhs9JNRsVENJoBY=4rV#emcdrW1lePj& zxAO(88BQ0lZa54(tnhk;Z&dhZg*PgE3!M7ewF*M>XxTr*YJtmDIx>@vzs9|v_qh+W zZ!%Z7@>NJlk6?_9BOJKj%^uqt^WgdvLw7PLGV?zf|G&}%1pWoEe*H+$_~KU}s;y&rEi!qu0nc3dH>WvUgJ zZe3yO_2Kmbo9+#E8qK5|hig6-!2PSh46E;UlVO;2o7>TV?R%}(AR3N0$kx9@4w*LP zJY++pUc&0@!x^33Xf)r){oZcZrcGwF5>~E`!K`F5)2o?`g`Vc*nVdYEljm~sd`_-G zX1{)vA#gk%{$}{S0FsH-OtucL{5Xxt&-`8^Vf_3~N=-e+WPnuPoWhtX0@Oh6jD3{N z8S72Sj7SSD)JQ9#gqCVVreF#Lgv=aRT054K>ZevpyUCc-F~@m2$Eqc}NI`}JXhj2N0aDHV|gnaQ%_+f0C^@@Tlkwt`)`C{SK z*Q$suGmq=Vyn;G%rQ(vo>qO^dgt9z;7HmQ00_6=P;dY>G#1xKWtL6i8<&a8Mr3(Zq z`-&CpevT$pvnQ*9DCroW(Ix)jks_poHiK1 zHB{`ahU2rkiclrwhj;2RX-mh)kZ|MhQ<&ok6d!;g2M6O4$_!g{D+2v5ok+KIA`*+I6VM6LIYYBG4nB!Mer?ufsXVXA{1BbYFiU2i}6$;WhY< z!Nl7Je}K3eVr}1x$74UrkTYs-94Ee;`AS^rY$ygNr)SjZ7F0cUL%$y;T2T#b&U$Hf zGx9|mkF?rr_kz%iM{y#0Md&BtxhoF#4+>iV4ozzhqvs1o%f9#-(CBqKaXlS{;;=jm z#hXP%Q|n(wIuknbhJH%(aS)__HWNtG-%Ha`CM#X5euFrHaB9i O&lX#d{w(&t-Ru|InCGeh diff --git a/Tiles/TransferPipeTile.xcf b/Tiles/TransferPipeTile.xcf deleted file mode 100644 index 8b3b69e22ea820c75433c9c1672c723d2b8f984f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9187 zcmeHN-Etc>6qdA3?8Hf0%Fh+d7|2C>5vK403}qPLf*Bq_H)-Oy9;~>NxI=S8V8jE! zHID!f!Enn1@Eo1e2}v9;-;q{cX;-oXr0E6TsVZ6eB%M9y=Kfiz23vJ+q*-hx(6ftW;A%` z z+m8?WqfY-|_hI*lW)JuGkGi9&c<4H=ciEnBDrup(_%E)7`bQM94r!=;e`oir-r?}^ zfl-=37hTIJWSbnNRkR7dQnXRAH@)_%*KT|5HLtzywQr%_%5kBltBFGU(dGQY$$~D? zGb5$wzzWUSyT7CS5srzU;16#x*7=$GCpp_-Jik?x7Q4)uT$5v#=W<fonVHIToTxD7SbdL3v(oN0r> z-EV-$SWR)Y1nh;xs9x32m82H!f?qu6`kB(2{t;H`Wh_-<2NpZ9*rx_Z=qk3YPaRaZ zvFddoNmjS0-Tzsz|GfM9v%D`-!j%*@SN&HqV$ua_&T_)O%g@OcN;fJtocCMks&yro zq?6DUXc+0gEE;78mWjA4Mh<@{5JoHtxLf+WQM|73neqrO0bCyRvBxUK*bmW6=z)1?FrU~ zbQu#ApBMrc`kfU8- z+MvYBP*Z`f=}UvWlmm)M*8n6r!_CWxM4QjKB^QtYEdx?oM=AZzwn}Kj6ZV_Yyp0Oh z3aNGm9ffwGm{CQe54NTt!C?d6G-7IZ+Q<5UMN=55qVXIwN7rEyK^R4le~aTftE_0^ z20V%4Ms?K{Z*PPQ1~0AL&5J@97hkpxkF%mzafV0-s3C)swv6P0trZB==IoH3ZA_?- zHB2Z7PjS^FeqC@D^R!uT7U>bs1!uv7$`IeH5}XBRiPMprJbI+>t70e0*uMgwndy*MTuup`i2}eo@>Ay3E|~%qU4o|t9uT7Z zY}{sY=2bxc4HE8pf>uXIS3^djNUnVBGe~m1nbKZL4QdK1mY>;F6KU2dEk%#PnR=m_ zji{@qlE6!4XVfH2nwDk|q4A}A?xe#VyJW)UQA9m$N{F`}p$SM68gveXsnj23goLa~ zltf0fl*9%ukldeW9o=Cd1HHSMd4I(jiHMU_W;`yXj8&YJK&rx%zdia0@p7SiI+A; z&YGC1B*}Oh<=WQcJpbDZM!**ivPuQYeQ!!M+#@W+~^{dA!XpE z4*ef*ey93Do7r(EzhLokuEO0?DErQ!zKRWl;T@(VE?klhZMbPnCDr2{!xT>GEQ2~} zF>=ZJ#wnlp2X48bsxHFVPYgFrY!_6uLXP4e85UI4zMJ$ZC*_3;s#@2JCAKD7`wV`X zU;Lk_D!q-MkHPqUVhem`1I0YRT-LIIJisr(ATf3FG*`Q)6`no0;Wey)Dhd znMelFE4MwDn_j!5I~G&YF}I$pgH5kpqJ=wHGHBfNMC{SuV|<2khyHc~*Cq=6%?JA% DC$S&m diff --git a/Tiles/TransferRelayTile.xcf b/Tiles/TransferRelayTile.xcf deleted file mode 100644 index 05a08df765e2e51a1b865118e8d7184c80a6bc07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3011 zcmb_e&5j#I5bhp(L&mc|$pSfX7>Uc~upxN^1PW0Okr1Sg931!98O3Wawh_B0=MnM% zh*QpkgoJWM;vsknG>XC|+N{09_w{sp$A6L$v{deL{Y_Q%H#OZ!kB;M$Ry%H|-9%x1 z1==TrbrYmDem(?U|KdgcCldINKy^?9bj$Iy`xy2Quq5+ zqr}8NrlY6vgNKj4rsjqR>oJ?I!WC-%ZW!#zDK&>UaBt_`q(5 zgU*v?eD}^>yH+swoa#1QpR928`glD<*OTFKvz7Kb@jd@62v1iDo$T<3UOI}?Uh8Qx zq<_EN9wwt%g7jV%m6CZ^_Q5UvYsobJZ~}iu?CPz@gJy5oP6pp3-R9|IoZ_A1UWbN( zv%ZF%hgE>CJD#4Q>1t-qXR{`7L z1+esLULL$eioZ~{r*z?|p>{T+&qZoo}*N+(hj@T1+OlE5fdC^ud`e>nbs?DlFY*s@2&{7}Zsb?AhW8D+(k)2HKpt1ew3i(ZsUN&f^^U zm)1PP_b@67oCF+mL^AJY&Xj1W8(rwKyBbC|wZPy=x6GgPL@KNi#IBdsgDXXp@;tVX zfl;!9On2RBk`KkhihHQW>Ur@w0j2<>GC9T!l$HrYI)JGKfGG#C46wR1Fh^4Wu&e}_ z;?XVx3}OqgjNqv$^v>wag3D^wfQvd?aHg{oTyzDn@ZSRqHa6D^urjS0nWi1GyMR`* z5V9~UPa15Lp+nSi%V1npZo{{RCSZryg36lA%PXbfeBEl zS-6BUR=@vWb4tz6DLiq5Ii(in6cD`WoWi$uX-+}r;k05-;bm!{HD|L)B>0$67D$9W zQk5ZvJHnM_8(wZg;nPC7MIB9+RX$i{I#oigPJo51o=o;AE0YNoZa$e%*urE&xXmUL zUvmql@-szF_7(k`889aW zvJn- zzD>GGYn1kT@uTMO8CCu!;%`A?$TqnJ?K)rHlx~1(AS{2Oq1dhHJ{X?? Date: Fri, 21 Jun 2019 21:05:27 +0200 Subject: [PATCH 20/33] Updated icon --- icon.png | Bin 2657 -> 2814 bytes icon.xcf | Bin 34827 -> 39784 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icon.png b/icon.png index 0fdcadffa94e6b83c2ef592eac2483d800ad01d5..cb854daba65a7c69d4e3c8075cb714e23ec3db97 100644 GIT binary patch delta 2806 zcmV_CX>@2HM@dakSAh-}000VjNklAty1{Mbb0m*elt5PK;d1xx3Rw6|_5P#(X_tdW(T(F;I_r;c!?zxwNzt0C2nKYxsOVR90330A^-p3~yq$+tvMnK!~ez zyPPSvp9=*50Nb~32LKEW4RPnwb?KPcbM@*~08pQwK!5c+ckWcn>gwvy*4Cynk@_j7 z0~5jRp05D_Z@l#;PMtW3fj|gumowq^1A!2pd#(XHlm|R@;$%{zt<|17F&X4KT`9FQ zWS|!F>~=dh`k0xExj-~~#E}=zaoKax)YOdM{OXr#2c+9xi>V^>=$LFbt!Ix$Aiz4; z<#MU*h<~l5ol|09{f=$i$gf$mCg~A#*>myT=YOE?r_(-F7MaC9t^-9o$!@o+BUD>k z3jnw{c9FeA$i>M-LVkX}=17a>0Ywy~+g_}HulzFr!1r!$<{0+rvmF3{qv2Yvop^sj zdwaWXhovP0&BE5Ir%Y+z-X1`

`m77||MuMt_``hicL$@kc5fe(6!XtT1bmW9BRV zQsvl~X{61A!Jw+`UG`jErdoEOfwq6+tv7My@1G!`p*S@eNWLxM^5x5mf*UT5dF#s8 zGB0Ez&L@=NI8U*wFr_bHT{%;J_a=e>fZ3`0G3R{Q))pgU4Li^@Jj~!&hVDh?Qd3iN zTz^X;#uFjmw$4+&_>4Lay0B0H0Oz2ecXJaGt6v(Gkwrb2{|9;JTUHRe;i_Ewk zDb*A6PW<|H0Kl1d-{tBLzxpckP+s~eFAKxdnjQ^Bb)xOe)vH&hU`=S(RHDG3_qwQ?}D}b$qm=tBc)CkRR&EJK1AI!ZRt=i)g%bDJ_qNi$JBLg)=Pz z<)zHP*I)jQy8qjYpEHZy#_X>3l?8^HNsPzoMKUtgh1afMPpO?K0~29lPF9CcUcw9v zN2b*MZ+kWY0E#^I%#J#DPP2`wZGRP+CzgjE(o0oWRdL7te!uScNg6Ux{F20(I4c@s z;wPZX!13@jiX2Sl&D{US@FJ=QqS$#kf+yl985zn92g$<_?K}dN4-WJvBm<-4f$=8I ztazXXqT_+$G;C5zWL&V+$HvAqqbjYftw}xLmfA8?bqM*kX5!1XHk>+f5`QjxZW^A* z6CeV$29e@{iOd@6GB6OCi+_JPH5SRTthP@FYx0<-(9t=VRJ*O4-HQ6PaStJCVX^~_ zBGR@r2XM)H#)-~Z>oRaUe_hN-i1=^E0CyaGfz2^A_!~Ga+~{Ocnu1HrgXy?4#4#~d zND{N+>g(${k4P^LNuYS7&3|Uo)xyzspd|yd;fYA2-Rk}-PM^ztXv z^5+o~ckSAxM0vv8=?;g3E7v=2i<&tDfZvri0{}ke6BqEJGLL_BsDUfryLT@q`)FHG zP{3_1J1`pzbQi5sHE}#oWPgZxAg!Iu9$dciTL6H%E#-g=+-&P%c7J0In>+Es%SAoJ z*{^%|?s3PFNW`$7WZcK&?D&HjAsz|ln>&km+1T0H$;o&zKajGtjOLv)%Ru=FW?&#P zr!sGHYSz$~4e6BM>hNp&%wn`d)b@J$fr&yd9w|Pj-u+ZlM#&G%m>p=rfPwMkUNoA^ znfAj2wkhc3wO6n<$bZ{|VD-ht#fI89UODA760=`i1y1IPTDWCyIXc( zHW>FBA#q2Z|URj2~ljI+j5O;H)Xt>`ghgfY+{h zE)816El^9tk$EMI5`C%^(_(Cr$>!>(in+RF%WMh*W1}(A`GJ-lm<<`Yt#&ap-8atW zLf$^G4*>9sQ-3rs%w**DZB>u~boUGakP(US+WYBk>j4?)?j2TqTi){D=2;I3Ku@1i zKgHMAc`5+_J-x$#1oir5We!N(^&~(7LZJtm@8rm{Yu-QF-b)r112e_I%Jn7i`4}S> z7MSq5{|$@Ih=JrUTK>lvQL3H4*VNKwSl@EZxW4%s`+tX}Y;B$prJ2!`kWOa~Bmk2- zOw@z<`GFP^XJE2x3Wy_aBwOOvJEH0(gL=U;5|QUv0YK8dPducOA80W!Q!>!!8%9rn zg?NAV(_7a;f`qV+%+!;Ci7?S(V5S(@6Bt*S_f_xU zWAQSR;eR;*62^&nTh=kVF+8JsDT&BHf|VbbO$OR*5>_l{)vq0V4FK@Z*1rJ&+Pium ztC!rN{ORQD9x}8Bto%TeU`l>qU}OSsAODMT#I~~Hk!-3cgQiRJh~jhQPp5Ks;!Ctd z|1X@;c;He*O8*Osn4gX+Tb@QL55;)+FHOuvmX&#r>u_ET_ z{ja>}i}TM*Io*^WC}wGCtzXmE*Jm;Cp)#b{)TVppxU}SH))=^Kl@qU?#6NY7pIyP8J$rEd`gN2RI!y1NA9n7B!vP#PaDe;DvhIn@Pj9hK zdjGxm)%|2K7oNZ$f6o?}sHt!#)$wLQqLs|Wb)-p7J?RjcM}u_X!UanUn<@jThbj6R zZxy0Mk&VwP70{Yt;tK5|^Bx&3yi}mdz{xao^`2B%3``UM2a8eWP`t&y&;S4c07*qo IM6N<$f^TJGr~m)} delta 2622 zcmV-E3c>aM72y<+Bo78+OGiWi{{a60|De66laV1Ff8qfM5Dqg^`Tm{&0013nR9JLF zZ*6U5Zgc_CX>@2HM@dakWG-a~000TaNklodddff%^E6G9UO?CNA2mST-Q56y zs;VjgKxt{IsXWg>uNWv|9zk4NmHa(>O9cR6Ua$lJ5R1hC0QDY85oL&(wNxV+=8`r&l|_2d#SRJ*Iq@) zfc0_LIegr84p#>H(bUw09dVdgDC)xW@s)uTQ>l;Pih(M2QYab%g1~1zy$CFNipvNq z*|>fkb{;rnYHx>qZ)wwjW$%E{V>I1`n@IF9Sg0VaU2M?E~^G{o>+cM-Qjk#*Q~(H41wUpcQyNpHB)P z{emiPos+t5uVd#U5Od2)y%dP_LTR*=8-4JaDRzBS6;p?IPKD*VuH)Sk9~q|B+Pdcr zUHzM1FSN%%D;JIkt<0xFME7sxe;mm^qSIhVnkPcO)NhwBvTS_v)OlAguW}EWT$(6! z)xNL$wAcqe+vSZ8wA7KI$pMDwNw&-L&Z{y!+d^E@od*sf7K>ry`gPEC-SB`cJrSPN zELi{m_+Q^p3WRS>Bg7{&5um z;FDB@hsZOj$j|DAmy||gD^JFA2D0F>Y$Ig^#9U_|&-Js^fvgOFdC@q2V(uKS?jib* z?!p8h+VE}6~_Kb%C0CUS96EcwJ_VHMkNjb^rz$xj%b{TkQ=1lzL?%g!ta-DH* zyRZ$<&n@sb;TWYuCtug|FSXV=!;*=52z609YNmTlT9&1AyRzg2x<*=Q>(({&xXu5-IH4I-&$H43YovjotKQJ2l^ z^7(w+frK7ac|g(USUZq@IWo%fvQlX?Mg|D!!t|evf05EIZ0Np}T)%!@+J!^WP+CGJ z%T$&55j%DtD{q~C5q`hfl~c6=r)(6ayQe6h&}x2!Fw3qh=XHLdXYs&+TLr+3M{Joa zEI3Zg7ge9v4trGd1E*y?@QBMva4+%$Me#rYmLV;1X2S5W<&Bor2B*|!OHABTs&_S| zyBCx{f36gd+_-+7vHZd+9++P%2X{+#g$%6v)ntxzpPuahfB*9z000fI?;^Jb08~Gn zTtCT#k3Uu|u-17)e|1;3%2jn-o`KUz2gZ9Zrj5RPv`=#S zWeD?#?j!c!l0`qy7&G$>%oGFr^bv!3|LGr^7BAzJd2W_^zn}0bqAn!>h+5&bl!DATm2jlmo*9 zPG##988cMt@=}V)dC}TF(Z_%L_j^rDWM};f#EyBwk?x=$f?n#?9tzpIrjxq6f5Vws zF|a$V;km6?|k@YZ{KHbms6kS5Z~-ECAq}3q7WK8#Zi^evmJQZ=?78e-T*p6h7S(;su)bcGh$Ir>6e>wr?===Y|UtZgUceb^muC6Za+EyuZhdYm9^P6v= zwYepuIfta{l0lV?+)H;ZQn9f_Oa58rv1RXUYqJDeGy>0m;-|*McTF%br3ssc9mwt@ zO?Iz+(1m3l87n$EI`Z*APjw(cnC#k1bRxT>w_OprK)EJt9FV*(%RCl`Bs>GX(t*=$ gV~AXlJOf?I4~yIc&Z;N!(EtDd07*qoM6N<$f_l8`IsgCw diff --git a/icon.xcf b/icon.xcf index 773ae952c42018bfec88f8fd95e8d17865f79995..c00afb3ce60144f3b34d52527d5c8f7e9994b7e8 100644 GIT binary patch literal 39784 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

    (psvVrHz0y9Ow2{j+*qt+N-$}c8(mo#1_@T6a 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 b@73l)7f?4OE;JG~lxi$|Op5; Date: Fri, 21 Jun 2019 22:37:16 +0200 Subject: [PATCH 21/33] Changed Russian translation of the DyeFilter easter egg --- Localization/ru-RU.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/ru-RU.lang b/Localization/ru-RU.lang index a54fb0f..059722b 100644 --- a/Localization/ru-RU.lang +++ b/Localization/ru-RU.lang @@ -72,7 +72,7 @@ ItemName.ArmorFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Бр ItemName.VanityFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Украшения) ItemName.AccessoryFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Аксессуары) ItemName.DyeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Красители) -EasterEgg.ItemName.DyeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Die) +EasterEgg.ItemName.DyeFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Красители) ItemName.AmmoFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Боеприпасы) ItemName.BaitFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Наживка) ItemName.MoneyFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Монеты) From 6350b35bf113a5f171264ec9e51a0bb74d5546d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sat, 22 Jun 2019 14:54:34 +0200 Subject: [PATCH 22/33] Improved map color entries --- MapColors.cs | 15 +++++++++++++++ MechTransfer.csproj | 3 ++- Tiles/BigButtonTile.cs | 2 +- Tiles/MagicStorageInterfaceTile.cs | 2 +- Tiles/OmniTurretTile.cs | 2 +- Tiles/PlayerInterfaceTile.cs | 2 +- Tiles/SmallButtonTile.cs | 2 +- Tiles/StackExtractorTile.cs | 2 +- Tiles/TransferAssemblerTile.cs | 2 +- Tiles/TransferExtractorTile.cs | 2 +- Tiles/TransferFilterTile.cs | 2 +- Tiles/TransferGateTile.cs | 2 +- Tiles/TransferInjectorTile.cs | 2 +- Tiles/TransferInletTile.cs | 2 +- Tiles/TransferOutletTile.cs | 2 +- Tiles/TransferPipeTile.cs | 2 +- Tiles/TransferRelayTile.cs | 2 +- 17 files changed, 32 insertions(+), 16 deletions(-) create mode 100644 MapColors.cs diff --git a/MapColors.cs b/MapColors.cs new file mode 100644 index 0000000..1a84aef --- /dev/null +++ b/MapColors.cs @@ -0,0 +1,15 @@ +using Microsoft.Xna.Framework; + +namespace MechTransfer +{ + public static class MapColors + { + public static Color FillMid { get { return new Color(90, 90, 90); } } + public static Color FillDark { get { return new Color(56, 56, 56); } } + public static Color FillLight { get { return new Color(127, 127, 127); } } + + public static Color Input { get { return new Color(107, 0, 0); } } + public static Color Output { get { return new Color(0, 107, 0); } } + public static Color Passthrough { get { return new Color(255, 104, 0); } } + } +} diff --git a/MechTransfer.csproj b/MechTransfer.csproj index 945f6a3..0bf46ad 100644 --- a/MechTransfer.csproj +++ b/MechTransfer.csproj @@ -51,6 +51,7 @@ + @@ -99,7 +100,7 @@ - + diff --git a/Tiles/BigButtonTile.cs b/Tiles/BigButtonTile.cs index cbc3545..2e34c60 100644 --- a/Tiles/BigButtonTile.cs +++ b/Tiles/BigButtonTile.cs @@ -14,7 +14,7 @@ public class BigButtonTile : SimpleTileObject, INetHandler { public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(new Color(144, 148, 144), GetPlaceItem(0).DisplayName); //Same as lever base.SetDefaults(); } diff --git a/Tiles/MagicStorageInterfaceTile.cs b/Tiles/MagicStorageInterfaceTile.cs index a96c100..b7f3c1e 100644 --- a/Tiles/MagicStorageInterfaceTile.cs +++ b/Tiles/MagicStorageInterfaceTile.cs @@ -11,7 +11,7 @@ public class MagicStorageInterfaceTile : SimpleTileObject { public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(MapColors.FillDark, GetPlaceItem(0).DisplayName); base.SetDefaults(); } diff --git a/Tiles/OmniTurretTile.cs b/Tiles/OmniTurretTile.cs index 98145ee..26129f6 100644 --- a/Tiles/OmniTurretTile.cs +++ b/Tiles/OmniTurretTile.cs @@ -15,7 +15,7 @@ public class OmniTurretTile : SimpleTileObject, INetHandler { public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(MapColors.FillLight, GetPlaceItem(0).DisplayName); base.SetDefaults(); } diff --git a/Tiles/PlayerInterfaceTile.cs b/Tiles/PlayerInterfaceTile.cs index f65cca4..31e3ced 100644 --- a/Tiles/PlayerInterfaceTile.cs +++ b/Tiles/PlayerInterfaceTile.cs @@ -14,7 +14,7 @@ public class PlayerInterfaceTile : SimpleTileObject { public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(MapColors.FillDark, GetPlaceItem(0).DisplayName); base.SetDefaults(); } diff --git a/Tiles/SmallButtonTile.cs b/Tiles/SmallButtonTile.cs index 00bc5ae..4b34ed5 100644 --- a/Tiles/SmallButtonTile.cs +++ b/Tiles/SmallButtonTile.cs @@ -16,7 +16,7 @@ public class SmallButtonTile : SimpleTileObject, INetHandler { public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(new Color(213, 203, 204), GetPlaceItem(0).DisplayName); //Same as switch base.SetDefaults(); } diff --git a/Tiles/StackExtractorTile.cs b/Tiles/StackExtractorTile.cs index 474a793..b542f06 100644 --- a/Tiles/StackExtractorTile.cs +++ b/Tiles/StackExtractorTile.cs @@ -14,7 +14,7 @@ public class StackExtractorTile : SimpleTileObject { public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(new Color(56, 56, 56), GetPlaceItem(0).DisplayName); mod.GetTile().connectedTiles.Add(Type); diff --git a/Tiles/TransferAssemblerTile.cs b/Tiles/TransferAssemblerTile.cs index 6210bd5..eb832bb 100644 --- a/Tiles/TransferAssemblerTile.cs +++ b/Tiles/TransferAssemblerTile.cs @@ -28,7 +28,7 @@ public class TransferAssemblerTile : FilterableTile public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(MapColors.Input, GetPlaceItem(0).DisplayName); base.SetDefaults(); } diff --git a/Tiles/TransferExtractorTile.cs b/Tiles/TransferExtractorTile.cs index b8672cc..8095606 100644 --- a/Tiles/TransferExtractorTile.cs +++ b/Tiles/TransferExtractorTile.cs @@ -14,7 +14,7 @@ public class TransferExtractorTile : SimpleTileObject { public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(MapColors.Input, GetPlaceItem(0).DisplayName); mod.GetTile().connectedTiles.Add(Type); diff --git a/Tiles/TransferFilterTile.cs b/Tiles/TransferFilterTile.cs index a5fe4d4..0fd854a 100644 --- a/Tiles/TransferFilterTile.cs +++ b/Tiles/TransferFilterTile.cs @@ -19,7 +19,7 @@ public class TransferFilterTile : FilterableTile, ITra public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(MapColors.Passthrough, GetPlaceItem(0).DisplayName); mod.GetModWorld().passthroughs.Add(Type, this); mod.GetTile().connectedTiles.Add(Type); diff --git a/Tiles/TransferGateTile.cs b/Tiles/TransferGateTile.cs index 52d148d..119ac68 100644 --- a/Tiles/TransferGateTile.cs +++ b/Tiles/TransferGateTile.cs @@ -14,7 +14,7 @@ public class TransferGateTile : SimpleTileObject, ITransferPassthrough { public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(MapColors.Passthrough, GetPlaceItem(0).DisplayName); mod.GetModWorld().passthroughs.Add(Type, this); mod.GetTile().connectedTiles.Add(Type); diff --git a/Tiles/TransferInjectorTile.cs b/Tiles/TransferInjectorTile.cs index d0632e6..a94b42c 100644 --- a/Tiles/TransferInjectorTile.cs +++ b/Tiles/TransferInjectorTile.cs @@ -14,7 +14,7 @@ public class TransferInjectorTile : SimpleTileObject, ITransferTarget { public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(MapColors.Output, GetPlaceItem(0).DisplayName); mod.GetModWorld().targets.Add(Type, this); mod.GetTile().connectedTiles.Add(Type); diff --git a/Tiles/TransferInletTile.cs b/Tiles/TransferInletTile.cs index e6fc4ec..7970262 100644 --- a/Tiles/TransferInletTile.cs +++ b/Tiles/TransferInletTile.cs @@ -17,7 +17,7 @@ public override void SetDefaults() Main.tileSolid[Type] = true; mod.GetGlobalTile().AddNoChestTile(Type); - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(MapColors.Input, GetPlaceItem(0).DisplayName); mod.GetModWorld().passthroughs.Add(Type, this); mod.GetTile().connectedTiles.Add(Type); diff --git a/Tiles/TransferOutletTile.cs b/Tiles/TransferOutletTile.cs index 1a07efc..9516162 100644 --- a/Tiles/TransferOutletTile.cs +++ b/Tiles/TransferOutletTile.cs @@ -14,7 +14,7 @@ public class TransferOutletTile : SimpleTileObject, ITransferTarget { public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(MapColors.Output, GetPlaceItem(0).DisplayName); mod.GetModWorld().targets.Add(Type, this); mod.GetTile().connectedTiles.Add(Type); diff --git a/Tiles/TransferPipeTile.cs b/Tiles/TransferPipeTile.cs index bd5644b..5cfe238 100644 --- a/Tiles/TransferPipeTile.cs +++ b/Tiles/TransferPipeTile.cs @@ -23,7 +23,7 @@ public override void SetDefaults() mod.GetModWorld().unconditionalPassthroughType = Type; - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(MapColors.FillMid); } protected override void SetTileObjectData() diff --git a/Tiles/TransferRelayTile.cs b/Tiles/TransferRelayTile.cs index 18c8eef..6736e0d 100644 --- a/Tiles/TransferRelayTile.cs +++ b/Tiles/TransferRelayTile.cs @@ -14,7 +14,7 @@ public class TransferRelayTile : SimpleTileObject, ITransferTarget { public override void SetDefaults() { - AddMapEntry(new Color(200, 200, 200)); + AddMapEntry(MapColors.Passthrough, GetPlaceItem(0).DisplayName); mod.GetModWorld().targets.Add(Type, this); mod.GetTile().connectedTiles.Add(Type); From faed496371b9c68a10d5c81e05efda789cfdd1da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sat, 22 Jun 2019 14:58:38 +0200 Subject: [PATCH 23/33] Cleanup --- MapColors.cs | 2 +- MechTransferAssemblerWorld.cs | 7 +++---- Tiles/MagicStorageInterfaceTile.cs | 1 - Tiles/OmniTurretTile.cs | 1 - Tiles/PlayerInterfaceTile.cs | 1 - Tiles/TransferExtractorTile.cs | 1 - Tiles/TransferFilterTile.cs | 1 - Tiles/TransferGateTile.cs | 1 - Tiles/TransferInjectorTile.cs | 1 - Tiles/TransferInletTile.cs | 1 - Tiles/TransferPipeTile.cs | 1 - Tiles/TransferRelayTile.cs | 1 - UI/FilterHoverUI.cs | 2 +- 13 files changed, 5 insertions(+), 16 deletions(-) diff --git a/MapColors.cs b/MapColors.cs index 1a84aef..5ad2ece 100644 --- a/MapColors.cs +++ b/MapColors.cs @@ -12,4 +12,4 @@ public static class MapColors public static Color Output { get { return new Color(0, 107, 0); } } public static Color Passthrough { get { return new Color(255, 104, 0); } } } -} +} \ No newline at end of file diff --git a/MechTransferAssemblerWorld.cs b/MechTransferAssemblerWorld.cs index 5a1e78e..8189aeb 100644 --- a/MechTransferAssemblerWorld.cs +++ b/MechTransferAssemblerWorld.cs @@ -1,7 +1,6 @@ using MechTransfer.Tiles; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using System; using Terraria; using Terraria.GameContent.UI; using Terraria.ModLoader; @@ -77,10 +76,10 @@ private void DrawRectFast(int left, int top, int height, int width) private void DrawTransition(int x, int y, Texture2D texture) { - if(mod.GetModWorld().IsContainer(x, y)) + if (mod.GetModWorld().IsContainer(x, y)) { - if(Main.LocalPlayer.gravDir == 1) - Main.spriteBatch.Draw(texture, new Vector2(x * 16 - Main.screenPosition.X, y * 16 - Main.screenPosition.Y), Lighting.GetColor(x,y)); + if (Main.LocalPlayer.gravDir == 1) + Main.spriteBatch.Draw(texture, new Vector2(x * 16 - Main.screenPosition.X, y * 16 - Main.screenPosition.Y), Lighting.GetColor(x, y)); else Main.spriteBatch.Draw(texture, new Vector2(x * 16 - Main.screenPosition.X, Main.screenHeight - y * 16 + Main.screenPosition.Y - 16), null, Lighting.GetColor(x, y), 0, Vector2.Zero, 1, SpriteEffects.FlipVertically, 0); } diff --git a/Tiles/MagicStorageInterfaceTile.cs b/Tiles/MagicStorageInterfaceTile.cs index b7f3c1e..5978f8d 100644 --- a/Tiles/MagicStorageInterfaceTile.cs +++ b/Tiles/MagicStorageInterfaceTile.cs @@ -1,6 +1,5 @@ using MechTransfer.Items; using MechTransfer.Tiles.Simple; -using Microsoft.Xna.Framework; using Terraria.DataStructures; using Terraria.Enums; using Terraria.ObjectData; diff --git a/Tiles/OmniTurretTile.cs b/Tiles/OmniTurretTile.cs index 26129f6..d6792d1 100644 --- a/Tiles/OmniTurretTile.cs +++ b/Tiles/OmniTurretTile.cs @@ -1,6 +1,5 @@ using MechTransfer.Items; using MechTransfer.Tiles.Simple; -using Microsoft.Xna.Framework; using System; using System.IO; using Terraria; diff --git a/Tiles/PlayerInterfaceTile.cs b/Tiles/PlayerInterfaceTile.cs index 31e3ced..d7b5c6a 100644 --- a/Tiles/PlayerInterfaceTile.cs +++ b/Tiles/PlayerInterfaceTile.cs @@ -1,6 +1,5 @@ using MechTransfer.Items; using MechTransfer.Tiles.Simple; -using Microsoft.Xna.Framework; using Terraria; using Terraria.DataStructures; using Terraria.Enums; diff --git a/Tiles/TransferExtractorTile.cs b/Tiles/TransferExtractorTile.cs index 8095606..5b1febd 100644 --- a/Tiles/TransferExtractorTile.cs +++ b/Tiles/TransferExtractorTile.cs @@ -1,6 +1,5 @@ using MechTransfer.Items; using MechTransfer.Tiles.Simple; -using Microsoft.Xna.Framework; using Terraria; using Terraria.DataStructures; using Terraria.Enums; diff --git a/Tiles/TransferFilterTile.cs b/Tiles/TransferFilterTile.cs index 0fd854a..73eff46 100644 --- a/Tiles/TransferFilterTile.cs +++ b/Tiles/TransferFilterTile.cs @@ -1,5 +1,4 @@ using MechTransfer.Items; -using Microsoft.Xna.Framework; using System.Collections.Generic; using Terraria; using Terraria.DataStructures; diff --git a/Tiles/TransferGateTile.cs b/Tiles/TransferGateTile.cs index 119ac68..c4210b9 100644 --- a/Tiles/TransferGateTile.cs +++ b/Tiles/TransferGateTile.cs @@ -1,6 +1,5 @@ using MechTransfer.Items; using MechTransfer.Tiles.Simple; -using Microsoft.Xna.Framework; using Terraria; using Terraria.DataStructures; using Terraria.Enums; diff --git a/Tiles/TransferInjectorTile.cs b/Tiles/TransferInjectorTile.cs index a94b42c..7bbcd56 100644 --- a/Tiles/TransferInjectorTile.cs +++ b/Tiles/TransferInjectorTile.cs @@ -1,6 +1,5 @@ using MechTransfer.Items; using MechTransfer.Tiles.Simple; -using Microsoft.Xna.Framework; using Terraria; using Terraria.DataStructures; using Terraria.Enums; diff --git a/Tiles/TransferInletTile.cs b/Tiles/TransferInletTile.cs index 7970262..7bab4ea 100644 --- a/Tiles/TransferInletTile.cs +++ b/Tiles/TransferInletTile.cs @@ -1,6 +1,5 @@ using MechTransfer.Items; using MechTransfer.Tiles.Simple; -using Microsoft.Xna.Framework; using Terraria; using Terraria.DataStructures; using Terraria.Enums; diff --git a/Tiles/TransferPipeTile.cs b/Tiles/TransferPipeTile.cs index 5cfe238..fe2f1d2 100644 --- a/Tiles/TransferPipeTile.cs +++ b/Tiles/TransferPipeTile.cs @@ -1,6 +1,5 @@ using MechTransfer.Items; using MechTransfer.Tiles.Simple; -using Microsoft.Xna.Framework; using System.Collections.Generic; using Terraria; using Terraria.DataStructures; diff --git a/Tiles/TransferRelayTile.cs b/Tiles/TransferRelayTile.cs index 6736e0d..346477a 100644 --- a/Tiles/TransferRelayTile.cs +++ b/Tiles/TransferRelayTile.cs @@ -1,6 +1,5 @@ using MechTransfer.Items; using MechTransfer.Tiles.Simple; -using Microsoft.Xna.Framework; using Terraria; using Terraria.DataStructures; using Terraria.Enums; diff --git a/UI/FilterHoverUI.cs b/UI/FilterHoverUI.cs index 5c27353..bea2ee4 100644 --- a/UI/FilterHoverUI.cs +++ b/UI/FilterHoverUI.cs @@ -3,8 +3,8 @@ using Terraria; using Terraria.GameContent.UI; using Terraria.GameContent.UI.Elements; -using Terraria.UI; using Terraria.Localization; +using Terraria.UI; namespace MechTransfer.UI { From 37bdd6a39cdc65d502a4182f68cd096a9f7db686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sun, 23 Jun 2019 00:13:32 +0200 Subject: [PATCH 24/33] Better system for placeable items (also fixes dedServ) --- Items/SimplePlaceableItem.cs | 51 --------- Items/SimplePrototypeItem.cs | 163 +++++++++++++++++++++++++++++ MechTransfer.csproj | 2 +- Tiles/BigButtonTile.cs | 6 +- Tiles/MagicStorageInterfaceTile.cs | 6 +- Tiles/OmniTurretTile.cs | 22 +--- Tiles/PlayerInterfaceTile.cs | 6 +- Tiles/SmallButtonTile.cs | 6 +- Tiles/StackExtractorTile.cs | 6 +- Tiles/TransferAssemblerTile.cs | 6 +- Tiles/TransferExtractorTile.cs | 5 +- Tiles/TransferFilterTile.cs | 11 +- Tiles/TransferGateTile.cs | 5 +- Tiles/TransferInjectorTile.cs | 5 +- Tiles/TransferInletTile.cs | 5 +- Tiles/TransferOutletTile.cs | 5 +- Tiles/TransferPipeTile.cs | 5 +- Tiles/TransferRelayTile.cs | 5 +- 18 files changed, 185 insertions(+), 135 deletions(-) delete mode 100644 Items/SimplePlaceableItem.cs create mode 100644 Items/SimplePrototypeItem.cs diff --git a/Items/SimplePlaceableItem.cs b/Items/SimplePlaceableItem.cs deleted file mode 100644 index 502bdf8..0000000 --- a/Items/SimplePlaceableItem.cs +++ /dev/null @@ -1,51 +0,0 @@ -using Terraria; -using Terraria.ModLoader; - -namespace MechTransfer.Items -{ - public class SimplePlaceableItem : ModItem - { - public int placeType; - public int style = 0; - public int value = Item.sellPrice(0, 0, 50, 0); - - private int autoWidth; - private int autoHeight; - - public override bool CloneNewInstances { get { return true; } } - - public override void SetStaticDefaults() - { - autoWidth = Main.itemTexture[item.type].Width; - autoHeight = Main.itemTexture[item.type].Height; - } - - public override void SetDefaults() - { - item.width = autoWidth; - item.height = autoHeight; - item.value = value; - item.maxStack = 999; - item.useTurn = true; - item.autoReuse = true; - item.useAnimation = 15; - item.useTime = 10; - item.useStyle = 1; - item.consumable = true; - item.mech = true; - item.createTile = placeType; - item.placeStyle = style; - } - - public override bool Autoload(ref string name) - { - return false; - } - - //Needed to stop ModLoader from assigning a default display name - public override void AutoStaticDefaults() - { - Main.itemTexture[item.type] = ModLoader.GetTexture(Texture); - } - } -} \ No newline at end of file diff --git a/Items/SimplePrototypeItem.cs b/Items/SimplePrototypeItem.cs new file mode 100644 index 0000000..be1711d --- /dev/null +++ b/Items/SimplePrototypeItem.cs @@ -0,0 +1,163 @@ +using System; +using Terraria; +using Terraria.ModLoader; + +namespace MechTransfer.Items +{ + public class SimplePrototypeItem : ModItem + { + [Obsolete("Manually using this constructor makes no sense")] + public SimplePrototypeItem() + { + //Just so we don't have to use CloneNewInstances + } + + public SimplePrototypeItem(Mod mod, string name) + { + mod.AddItem(name, this); + } + + public override ModItem NewInstance(Item itemClone) + { + ModItem newModItem = base.NewInstance(itemClone); + CopyItemFields(itemClone, item); + return newModItem; + } + + public override bool Autoload(ref string name) + { + return false; + } + + //Needed to stop ModLoader from assigning a default display name + public override void AutoStaticDefaults() + { + Main.itemTexture[item.type] = ModLoader.GetTexture(Texture); + } + + public static SimplePrototypeItem MakePlaceable(Mod mod, string name, int placeType, int width = 16, int height = 16, int placeStyle = 0, int value = 50000) + { + SimplePrototypeItem i = new SimplePrototypeItem(mod, name); + + i.item.width = width; + i.item.height = height; + i.item.value = value; + i.item.maxStack = 999; + i.item.useTurn = true; + i.item.autoReuse = true; + i.item.useAnimation = 15; + i.item.useTime = 10; + i.item.useStyle = 1; + i.item.consumable = true; + i.item.mech = true; + i.item.createTile = placeType; + i.item.placeStyle = placeStyle; + + return i; + } + + //Copies every field of j to i, except for netID, active, favorited, type, modItem and globalItems + //Made using Item.ResetStats + public static void CopyItemFields(Item i, Item j) + { + //These two are not in Item.ResetStats, but I still need them... + i.width = j.width; + i.height = j.height; + + i.sentry = j.sentry; + i.DD2Summon = j.DD2Summon; + i.shopSpecialCurrency = j.shopSpecialCurrency; + i.shopCustomPrice = j.shopCustomPrice; + i.expert = j.expert; + i.expertOnly = j.expertOnly; + i.instanced = j.instanced; + i.thrown = j.thrown; + i.questItem = j.questItem; + i.fishingPole = j.fishingPole; + i.bait = j.bait; + i.hairDye = j.hairDye; + i.makeNPC = j.makeNPC; + i.dye = j.dye; + i.paint = j.paint; + i.tileWand = j.tileWand; + i.notAmmo = j.notAmmo; + i.prefix = j.prefix; + i.crit = j.crit; + i.mech = j.mech; + i.flame = j.flame; + i.reuseDelay = j.reuseDelay; + i.melee = j.melee; + i.magic = j.magic; + i.ranged = j.ranged; + i.summon = j.summon; + i.placeStyle = j.placeStyle; + i.buffTime = j.buffTime; + i.buffType = j.buffType; + i.mountType = j.mountType; + i.cartTrack = j.cartTrack; + i.material = j.material; + i.noWet = j.noWet; + i.vanity = j.vanity; + i.mana = j.mana; + i.wet = j.wet; + i.wetCount = j.wetCount; + i.lavaWet = j.lavaWet; + i.channel = j.channel; + i.manaIncrease = j.manaIncrease; + i.release = j.release; + i.noMelee = j.noMelee; + i.noUseGraphic = j.noUseGraphic; + i.lifeRegen = j.lifeRegen; + i.shootSpeed = j.shootSpeed; + i.alpha = j.alpha; + i.ammo = j.ammo; + i.useAmmo = j.useAmmo; + i.autoReuse = j.autoReuse; + i.accessory = j.accessory; + i.axe = j.axe; + i.healMana = j.healMana; + i.bodySlot = j.bodySlot; + i.legSlot = j.legSlot; + i.headSlot = j.headSlot; + i.potion = j.potion; + i.color = j.color; + i.glowMask = j.glowMask; + i.consumable = j.consumable; + i.createTile = j.createTile; + i.createWall = j.createWall; + i.damage = j.damage; + i.defense = j.defense; + i.hammer = j.hammer; + i.healLife = j.healLife; + i.holdStyle = j.holdStyle; + i.knockBack = j.knockBack; + i.maxStack = j.maxStack; + i.pick = j.pick; + i.rare = j.rare; + i.scale = j.scale; + i.shoot = j.shoot; + i.stack = j.stack; + i.ToolTip = j.ToolTip; + i.tileBoost = j.tileBoost; + i.useStyle = j.useStyle; + i.UseSound = j.UseSound; + i.useTime = j.useTime; + i.useAnimation = j.useAnimation; + i.value = j.value; + i.useTurn = j.useTurn; + i.buy = j.buy; + i.handOnSlot = j.handOnSlot; + i.handOffSlot = j.handOffSlot; + i.backSlot = j.backSlot; + i.frontSlot = j.frontSlot; + i.shoeSlot = j.shoeSlot; + i.waistSlot = j.waistSlot; + i.wingSlot = j.wingSlot; + i.shieldSlot = j.shieldSlot; + i.neckSlot = j.neckSlot; + i.faceSlot = j.faceSlot; + i.balloonSlot = j.balloonSlot; + i.uniqueStack = j.uniqueStack; + } + } +} \ No newline at end of file diff --git a/MechTransfer.csproj b/MechTransfer.csproj index 0bf46ad..4af1f29 100644 --- a/MechTransfer.csproj +++ b/MechTransfer.csproj @@ -49,7 +49,7 @@ - + diff --git a/Tiles/BigButtonTile.cs b/Tiles/BigButtonTile.cs index 2e34c60..19a510b 100644 --- a/Tiles/BigButtonTile.cs +++ b/Tiles/BigButtonTile.cs @@ -73,11 +73,7 @@ public override void AnimateIndividualTile(int type, int i, int j, ref int frame public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - i.value = Item.sellPrice(0, 0, 6, 0); - mod.AddItem("BigButtonItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "BigButtonItem", Type, 24, 20); NetRouter.AddHandler(this); } diff --git a/Tiles/MagicStorageInterfaceTile.cs b/Tiles/MagicStorageInterfaceTile.cs index 5978f8d..3a01dc4 100644 --- a/Tiles/MagicStorageInterfaceTile.cs +++ b/Tiles/MagicStorageInterfaceTile.cs @@ -1,6 +1,7 @@ using MechTransfer.Items; using MechTransfer.Tiles.Simple; using Terraria.DataStructures; +using Terraria; using Terraria.Enums; using Terraria.ObjectData; @@ -26,10 +27,7 @@ protected override void SetTileObjectData() public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - mod.AddItem("MagicStorageInterfaceItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "MagicStorageInterfaceItem", Type, 32, 32); } } } \ No newline at end of file diff --git a/Tiles/OmniTurretTile.cs b/Tiles/OmniTurretTile.cs index d6792d1..0d605a9 100644 --- a/Tiles/OmniTurretTile.cs +++ b/Tiles/OmniTurretTile.cs @@ -130,28 +130,16 @@ public override void PostLoad() { placeItems = new ModItem[3]; + int sell = Item.sellPrice(0, 1, 0, 0); + //Omni turret - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - i.value = Item.sellPrice(0, 1, 0, 0); - mod.AddItem("OmniTurretItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "OmniTurretItem", Type, 32, 32, 0, sell); //Super omni turret - i = new SimplePlaceableItem(); - i.placeType = Type; - i.value = Item.sellPrice(0, 1, 0, 0); - i.style = 1; - mod.AddItem("SuperOmniTurretItem", i); - placeItems[1] = i; + placeItems[1] = SimplePrototypeItem.MakePlaceable(mod, "SuperOmniTurretItem", Type, 32, 32, 1, sell); //Matter projector - i = new SimplePlaceableItem(); - i.placeType = Type; - i.value = Item.sellPrice(0, 1, 0, 0); - i.style = 2; - mod.AddItem("MatterProjectorItem", i); - placeItems[2] = i; + placeItems[2] = SimplePrototypeItem.MakePlaceable(mod, "MatterProjectorItem", Type, 32, 32, 2, sell); NetRouter.AddHandler(this); } diff --git a/Tiles/PlayerInterfaceTile.cs b/Tiles/PlayerInterfaceTile.cs index d7b5c6a..b6aab49 100644 --- a/Tiles/PlayerInterfaceTile.cs +++ b/Tiles/PlayerInterfaceTile.cs @@ -31,11 +31,7 @@ protected override void SetTileObjectData() public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - mod.AddItem("PlayerInterfaceItem", i); - i.value = Item.sellPrice(0, 1, 0, 0); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "PlayerInterfaceItem", Type, 26, 26, 0, Item.sellPrice(0, 1, 0, 0)); } public override void Addrecipes() diff --git a/Tiles/SmallButtonTile.cs b/Tiles/SmallButtonTile.cs index 4b34ed5..343fc7d 100644 --- a/Tiles/SmallButtonTile.cs +++ b/Tiles/SmallButtonTile.cs @@ -78,11 +78,7 @@ public override void AnimateIndividualTile(int type, int i, int j, ref int frame public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - i.value = Item.sellPrice(0, 0, 4, 0); - mod.AddItem("SmallButtonItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "SmallButtonItem", Type, 20, 20, 0, Item.sellPrice(0, 0, 4, 0)); NetRouter.AddHandler(this); } diff --git a/Tiles/StackExtractorTile.cs b/Tiles/StackExtractorTile.cs index b542f06..b2ddc81 100644 --- a/Tiles/StackExtractorTile.cs +++ b/Tiles/StackExtractorTile.cs @@ -52,11 +52,7 @@ public override void HitWire(int i, int j) public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - i.value = Item.sellPrice(0, 1, 0, 0); - mod.AddItem("StackExtractorItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "StackExtractorItem", Type, 16, 16, 0, Item.sellPrice(0, 1, 0, 0)); } public override void Addrecipes() diff --git a/Tiles/TransferAssemblerTile.cs b/Tiles/TransferAssemblerTile.cs index eb832bb..71ffc18 100644 --- a/Tiles/TransferAssemblerTile.cs +++ b/Tiles/TransferAssemblerTile.cs @@ -236,11 +236,7 @@ public static string ItemNameById(int id) public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - i.value = Item.sellPrice(0, 1, 0, 0); - mod.AddItem("TransferAssemblerItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferAssemblerItem", Type, 16, 16, 0, Item.sellPrice(0, 1, 0, 0)); } public override void Addrecipes() diff --git a/Tiles/TransferExtractorTile.cs b/Tiles/TransferExtractorTile.cs index 5b1febd..3d394e9 100644 --- a/Tiles/TransferExtractorTile.cs +++ b/Tiles/TransferExtractorTile.cs @@ -51,10 +51,7 @@ protected override void SetTileObjectData() public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - mod.AddItem("TransferExtractorItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferExtractorItem", Type); } public override void Addrecipes() diff --git a/Tiles/TransferFilterTile.cs b/Tiles/TransferFilterTile.cs index 73eff46..c79b02a 100644 --- a/Tiles/TransferFilterTile.cs +++ b/Tiles/TransferFilterTile.cs @@ -76,17 +76,10 @@ public override void PostLoad() placeItems = new ModItem[2]; //Filter - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - mod.AddItem("TransferFilterItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferFilterItem", Type, 16, 16, 0); //InverseFilter - i = new SimplePlaceableItem(); - i.placeType = Type; - i.style = 1; - mod.AddItem("InverseTransferFilterItem", i); - placeItems[1] = i; + placeItems[1] = SimplePrototypeItem.MakePlaceable(mod, "InverseTransferFilterItem", Type, 16, 16, 1); LoadFilters(); } diff --git a/Tiles/TransferGateTile.cs b/Tiles/TransferGateTile.cs index c4210b9..cb3b3d5 100644 --- a/Tiles/TransferGateTile.cs +++ b/Tiles/TransferGateTile.cs @@ -50,10 +50,7 @@ public bool ShouldPassthrough(Point16 location, Item item) public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - mod.AddItem("TransferGateItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferGateItem", Type); } public override void Addrecipes() diff --git a/Tiles/TransferInjectorTile.cs b/Tiles/TransferInjectorTile.cs index 7bbcd56..1d13e9b 100644 --- a/Tiles/TransferInjectorTile.cs +++ b/Tiles/TransferInjectorTile.cs @@ -48,10 +48,7 @@ public bool Receive(Point16 location, Item item) public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - mod.AddItem("TransferInjectorItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferInjectorItem", Type); } public override void Addrecipes() diff --git a/Tiles/TransferInletTile.cs b/Tiles/TransferInletTile.cs index 7bab4ea..f713019 100644 --- a/Tiles/TransferInletTile.cs +++ b/Tiles/TransferInletTile.cs @@ -46,10 +46,7 @@ public bool ShouldPassthrough(Point16 location, Item item) public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - mod.AddItem("TransferInletItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferInletItem", Type, 32, 14); } public override void Addrecipes() diff --git a/Tiles/TransferOutletTile.cs b/Tiles/TransferOutletTile.cs index 9516162..e793045 100644 --- a/Tiles/TransferOutletTile.cs +++ b/Tiles/TransferOutletTile.cs @@ -51,10 +51,7 @@ public bool Receive(Point16 location, Item item) public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - mod.AddItem("TransferOutletItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferOutletItem", Type); } public override void Addrecipes() diff --git a/Tiles/TransferPipeTile.cs b/Tiles/TransferPipeTile.cs index fe2f1d2..7c8d02b 100644 --- a/Tiles/TransferPipeTile.cs +++ b/Tiles/TransferPipeTile.cs @@ -64,10 +64,7 @@ private bool shouldConnect(int x, int y, int offsetX, int offsetY) public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - mod.AddItem("TransferPipeItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferPipeItem", Type); } public override void Addrecipes() diff --git a/Tiles/TransferRelayTile.cs b/Tiles/TransferRelayTile.cs index 346477a..dc0b34e 100644 --- a/Tiles/TransferRelayTile.cs +++ b/Tiles/TransferRelayTile.cs @@ -64,10 +64,7 @@ public bool Receive(Point16 location, Item item) public override void PostLoad() { - SimplePlaceableItem i = new SimplePlaceableItem(); - i.placeType = Type; - mod.AddItem("TransferRelayItem", i); - placeItems[0] = i; + placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferRelayItem", Type, 32, 16); } public override void Addrecipes() From 846041df2d9078d16560538dd523227ed6a699e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sun, 23 Jun 2019 00:30:31 +0200 Subject: [PATCH 25/33] Fixed item name capitalization --- Localization/en-US.lang | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Localization/en-US.lang b/Localization/en-US.lang index ab44e94..872bc29 100644 --- a/Localization/en-US.lang +++ b/Localization/en-US.lang @@ -1,60 +1,60 @@ UI.Hover.NotSet = Not set UI.Hover.Generic = Filter: -ItemName.PneumaticActuatorItem = Pneumatic actuator +ItemName.PneumaticActuatorItem = Pneumatic Actuator ItemTooltip.PneumaticActuatorItem = Used to craft item transfer devices -ItemName.BigButtonItem = Big button +ItemName.BigButtonItem = Big Button ItemName.SmallButtonItem = Small button -ItemName.OmniTurretItem = Omni turret +ItemName.OmniTurretItem = Omni Turret ItemTooltip.OmniTurretItem = Shoots any standard ammo -ItemName.SuperOmniTurretItem = Super omni turret +ItemName.SuperOmniTurretItem = Super Omni Turret ItemTooltip.SuperOmniTurretItem = Shoots any standard ammo -ItemName.MatterProjectorItem = Matter projector +ItemName.MatterProjectorItem = Matter Projector ItemTooltip.MatterProjectorItem = Shoots any standard ammo really, really fast -ItemName.TransferPipeItem = Transfer pipe +ItemName.TransferPipeItem = Transfer Pipe ItemTooltip.TransferPipeItem = Used to connect item transfer devices -ItemName.TransferExtractorItem = Transfer extractor +ItemName.TransferExtractorItem = Transfer Extractor ItemTooltip.TransferExtractorItem = Extracts items from adjacent chests -ItemName.StackExtractorItem = Stack extractor +ItemName.StackExtractorItem = Stack Extractor ItemTooltip.StackExtractorItem = Extracts a whole stack at once -ItemName.TransferInletItem = Transfer inlet +ItemName.TransferInletItem = Transfer Inlet ItemTooltip.TransferInletItem = Picks up dropped items -ItemName.TransferFilterItem = Transfer filter (whitelist) +ItemName.TransferFilterItem = Transfer Filter (Whitelist) ItemTooltip.TransferFilterItem = Place in line with Transfer pipe\nRight click with item in hand to set filter UI.Hover.TransferFilterItem = Item allowed: -ItemName.InverseTransferFilterItem = Transfer filter (blacklist) +ItemName.InverseTransferFilterItem = Transfer Filter (Blacklist) ItemTooltip.InverseTransferFilterItem = Place in line with Transfer pipe\nRight click with item in hand to set filter UI.Hover.InverseTransferFilterItem = Item restricted: -ItemName.TransferGateItem = Transfer gate +ItemName.TransferGateItem = Transfer Gate ItemTooltip.TransferGateItem = Place in line with Transfer pipe to toggle the item flow with wire -ItemName.TransferRelayItem = Transfer relay +ItemName.TransferRelayItem = Transfer Relay ItemTooltip.TransferRelayItem = Receives items, and sends them out again ItemName.TransferInjectorItem = Transfer Injector ItemTooltip.TransferInjectorItem = Injects items into adjacent chests -ItemName.TransferOutletItem = Transfer outlet +ItemName.TransferOutletItem = Transfer Outlet ItemTooltip.TransferOutletItem = Drops item -ItemName.MagicStorageInterfaceItem = Magic storage interface +ItemName.MagicStorageInterfaceItem = Magic Storage Interface ItemTooltip.MagicStorageInterfaceItem = Allows you to inject and extract items from storage systems -ItemName.PlayerInterfaceItem = Player interface +ItemName.PlayerInterfaceItem = Player Interface ItemTooltip.PlayerInterfaceItem = Allows you to inject and extract items from a players inventory -ItemName.TransferAssemblerItem = Transfer assembler +ItemName.TransferAssemblerItem = Transfer Assembler ItemTooltip.TransferAssemblerItem = WIP\nCrafts items automatically\nRight click with item in hand to set filter -Common.ItemName.FilterItem = Item filter +Common.ItemName.FilterItem = Item Filter Common.ItemTooltip.FilterItem = Use in Transfer filter ItemName.AnyFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Any) ItemName.Rarity-GrayFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Gray) From 6d921c01310abb34fc19f20f4ec8c3f562e76df7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sun, 23 Jun 2019 02:24:14 +0200 Subject: [PATCH 26/33] Added living hellstone --- Content/LivingHellstoneItem.png | Bin 0 -> 5574 bytes Content/LivingHellstoneItem.xcf | Bin 0 -> 2061 bytes Content/LivingHellstoneTile.png | Bin 0 -> 42790 bytes Content/LivingHellstoneTile.xcf | Bin 0 -> 91081 bytes Content/content.json | 4 +- Items/LivingHellstoneItem.png | Bin 0 -> 299 bytes LivingHellstoneGlobalItem.cs | 38 ++++++++++++++++ Localization/en-US.lang | 3 ++ MechTransfer.csproj | 2 + Tiles/LivingHellstoneTile.cs | 67 ++++++++++++++++++++++++++++ Tiles/LivingHellstoneTile.png | Bin 0 -> 14984 bytes Tiles/Simple/SimplePlaceableTile.cs | 7 --- 12 files changed, 113 insertions(+), 8 deletions(-) create mode 100644 Content/LivingHellstoneItem.png create mode 100644 Content/LivingHellstoneItem.xcf create mode 100644 Content/LivingHellstoneTile.png create mode 100644 Content/LivingHellstoneTile.xcf create mode 100644 Items/LivingHellstoneItem.png create mode 100644 LivingHellstoneGlobalItem.cs create mode 100644 Tiles/LivingHellstoneTile.cs create mode 100644 Tiles/LivingHellstoneTile.png diff --git a/Content/LivingHellstoneItem.png b/Content/LivingHellstoneItem.png new file mode 100644 index 0000000000000000000000000000000000000000..484b4ed9a259ba0826f32a6c5e33c772a503c1bf GIT binary patch literal 5574 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 literal 0 HcmV?d00001 diff --git a/Content/LivingHellstoneTile.png b/Content/LivingHellstoneTile.png new file mode 100644 index 0000000000000000000000000000000000000000..52117ecfa496a47531bcf1fe7aa05071d55f8096 GIT binary patch literal 42790 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 literal 0 HcmV?d00001 diff --git a/Content/LivingHellstoneTile.xcf b/Content/LivingHellstoneTile.xcf new file mode 100644 index 0000000000000000000000000000000000000000..2f0ec28f216ad2d5522ff46b06319ecfc3b33385 GIT binary patch literal 91081 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 literal 0 HcmV?d00001 diff --git a/Content/content.json b/Content/content.json index 996b252..07ba802 100644 --- a/Content/content.json +++ b/Content/content.json @@ -43,7 +43,8 @@ { "p" : "OmniTurretTile.png", "t" : "Tiles" }, { "p" : "PlayerInterfaceTile.png", "t" : "Tiles" }, { "p" : "MagicStorageInterfaceTile.png", "t" : "Tiles" }, - { "p" : "TransferAssemblerTile.png", "t" : "Tiles" } + { "p" : "TransferAssemblerTile.png", "t" : "Tiles" }, + { "p" : "LivingHellstoneTile.png", "t" : "Tiles" } ] }, { @@ -87,6 +88,7 @@ { "p" : "PlayerInterfaceItem.png", "t" : "Items" }, { "p" : "PneumaticActuatorItem.png", "t" : "Items" }, { "p" : "TransferInletItem.png", "t" : "Items" }, + { "p" : "LivingHellstoneItem.png", "t" : "Items" }, { "p" : "Transitions.png", "t" : "Tiles/Transitions/Top.png"} ] }, diff --git a/Items/LivingHellstoneItem.png b/Items/LivingHellstoneItem.png new file mode 100644 index 0000000000000000000000000000000000000000..65374e209f847cd50d7aa7d37471298677fbddee GIT binary patch literal 299 zcmV+`0o4A9P)Yk6b0~KY#nuRaF7OZaj6vC+!VwIaO+aULFlOBQ&hoC!9ghKYbXd790b9kMUc?y z;HXaG5QiAC(STsicJFsM_uM~UAP3`PmH4;(%j+Qc9*^V+{1xTA%HhNkcpL3x7|DC; zF*eUie1ldIDB#Yaq{exSGgAW()) + return; + + foreach (var p in Collision.GetEntityEdgeTiles(item)) + { + if (p.X > 0 && p.X < Main.maxTilesX && p.Y > 0 && p.Y < Main.maxTilesY && + Main.tile[p.X, p.Y].active() && Main.tile[p.X, p.Y].type == mod.TileType()) + { + if (++burnTime > 0) + { + Dust.NewDust(item.position, item.width, item.height, 6); + } + if (burnTime > 60) + { + item.active = false; + } + return; + } + } + burnTime = 0; + } + } +} \ No newline at end of file diff --git a/Localization/en-US.lang b/Localization/en-US.lang index 872bc29..76cac35 100644 --- a/Localization/en-US.lang +++ b/Localization/en-US.lang @@ -89,3 +89,6 @@ ItemName.MaterialFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (M ItemName.PotionFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Potion) ItemName.TileFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Tile) ItemName.WallFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Wall) + +ItemName.LivingHellstoneItem = Living Hellstone +ItemTooltip.LivingHellstoneItem = Devours any item on contact, regardless of rarity \ No newline at end of file diff --git a/MechTransfer.csproj b/MechTransfer.csproj index 4af1f29..6a961a0 100644 --- a/MechTransfer.csproj +++ b/MechTransfer.csproj @@ -51,10 +51,12 @@ + + diff --git a/Tiles/LivingHellstoneTile.cs b/Tiles/LivingHellstoneTile.cs new file mode 100644 index 0000000..1374696 --- /dev/null +++ b/Tiles/LivingHellstoneTile.cs @@ -0,0 +1,67 @@ +using MechTransfer.Items; +using MechTransfer.Tiles.Simple; +using Terraria; +using Terraria.ModLoader; +using Terraria.ID; + +namespace MechTransfer.Tiles +{ + public class LivingHellstoneTile : SimplePlaceableTile + { + public override void SetDefaults() + { + Main.tileSolid[Type] = true; + Main.tileBlockLight[Type] = true; + Main.tileLighted[Type] = true; + TileID.Sets.TouchDamageHot[Type] = 20; + + animationFrameHeight = 90; + + dustType = 6; + soundType = 21; + soundStyle = 1; + mineResist = 2; + + base.SetDefaults(); + } + + public override void AnimateTile(ref int frame, ref int frameCounter) + { + frameCounter++; + + if ((frameCounter > 60 && frameCounter < 70) || (frameCounter > 80)) + frame = 1; + else + frame = 0; + + if (frameCounter > 90) + frameCounter = 0; + } + + public override void ModifyLight(int i, int j, ref float r, ref float g, ref float b) + { + r = 0.350f; + g = 0.150f; + b = 0.150f; + } + + public override void PostLoad() + { + placeItem = SimplePrototypeItem.MakePlaceable(mod, "LivingHellstoneItem", Type); + placeItem.item.rare = ItemRarityID.Green; + placeItem.item.mech = false; + } + + + public override void Addrecipes() + { + ModRecipe r = new ModRecipe(mod); + r.AddIngredient(ItemID.HellstoneBar, 5); + r.AddIngredient(ItemID.Obsidian, 5); + r.AddIngredient(ItemID.LavaBucket, 1); + r.AddTile(TileID.Anvils); + r.SetResult(placeItem.item.type, 1); + r.AddRecipe(); + } + } +} \ No newline at end of file diff --git a/Tiles/LivingHellstoneTile.png b/Tiles/LivingHellstoneTile.png new file mode 100644 index 0000000000000000000000000000000000000000..2faada62b55dc96c7ed027a7a2238cda7a7aac64 GIT binary patch literal 14984 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 literal 0 HcmV?d00001 diff --git a/Tiles/Simple/SimplePlaceableTile.cs b/Tiles/Simple/SimplePlaceableTile.cs index 629e28a..0615073 100644 --- a/Tiles/Simple/SimplePlaceableTile.cs +++ b/Tiles/Simple/SimplePlaceableTile.cs @@ -6,16 +6,9 @@ public abstract class SimplePlaceableTile : SimpleTile { public ModItem placeItem { get; protected set; } - public override void PostLoad() - { - mod.AddItem(LoadPlaceItem(), placeItem); - } - public override void SetDefaults() { drop = placeItem.item.type; } - - public abstract string LoadPlaceItem(); } } \ No newline at end of file From 1eba2bd1e48ce801979f25485067718ff066a032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sun, 23 Jun 2019 02:28:06 +0200 Subject: [PATCH 27/33] Fixed some capitalization in Tiles.Simple --- MechTransfer.cs | 4 ++-- Tiles/BigButtonTile.cs | 10 +++++----- Tiles/LivingHellstoneTile.cs | 10 +++++----- Tiles/MagicStorageInterfaceTile.cs | 2 +- Tiles/OmniTurretTile.cs | 18 +++++++++--------- Tiles/PlayerInterfaceTile.cs | 6 +++--- Tiles/Simple/SimplePlaceableTile.cs | 4 ++-- Tiles/Simple/SimpleTile.cs | 2 +- Tiles/Simple/SimpleTileObject.cs | 6 +++--- Tiles/SmallButtonTile.cs | 10 +++++----- Tiles/StackExtractorTile.cs | 6 +++--- Tiles/TransferAssemblerTile.cs | 6 +++--- Tiles/TransferExtractorTile.cs | 6 +++--- Tiles/TransferFilterTile.cs | 20 ++++++++++---------- Tiles/TransferGateTile.cs | 6 +++--- Tiles/TransferInjectorTile.cs | 6 +++--- Tiles/TransferInletTile.cs | 6 +++--- Tiles/TransferOutletTile.cs | 6 +++--- Tiles/TransferPipeTile.cs | 6 +++--- Tiles/TransferRelayTile.cs | 6 +++--- 20 files changed, 73 insertions(+), 73 deletions(-) diff --git a/MechTransfer.cs b/MechTransfer.cs index 5b876dc..3512347 100644 --- a/MechTransfer.cs +++ b/MechTransfer.cs @@ -170,7 +170,7 @@ public override void Load() SimpleTile tile = (SimpleTile)Activator.CreateInstance(item); AddTile(item.Name, tile, item.FullName.Replace('.', '/')); tile.PostLoad(); - simpleTileAddRecipequeue.Add(new Action(tile.Addrecipes)); + simpleTileAddRecipequeue.Add(new Action(tile.AddRecipes)); Type TEType; if (IsTETile(item, out TEType)) @@ -357,7 +357,7 @@ public static class ModExtensions public static ModItem GetPlaceItem(this Mod mod) where T : SimplePlaceableTile { SimplePlaceableTile tile = mod.GetTile(); - return tile.placeItem; + return tile.PlaceItem; } public static ModItem GetPlaceItem(this Mod mod, int kind) where T : SimpleTileObject diff --git a/Tiles/BigButtonTile.cs b/Tiles/BigButtonTile.cs index 19a510b..3335c70 100644 --- a/Tiles/BigButtonTile.cs +++ b/Tiles/BigButtonTile.cs @@ -38,7 +38,7 @@ protected override void SetTileObjectData() public override void MouseOver(int i, int j) { Main.LocalPlayer.showItemIcon = true; - Main.LocalPlayer.showItemIcon2 = placeItems[0].item.type; + Main.LocalPlayer.showItemIcon2 = PlaceItems[0].item.type; Main.LocalPlayer.noThrow = 2; } @@ -73,20 +73,20 @@ public override void AnimateIndividualTile(int type, int i, int j, ref int frame public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "BigButtonItem", Type, 24, 20); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "BigButtonItem", Type, 24, 20); NetRouter.AddHandler(this); } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(ItemID.Lever, 1); - r.SetResult(placeItems[0], 1); + r.SetResult(PlaceItems[0], 1); r.AddRecipe(); r = new ModRecipe(mod); - r.AddIngredient(placeItems[0], 1); + r.AddIngredient(PlaceItems[0], 1); r.SetResult(ItemID.Lever, 1); r.AddRecipe(); } diff --git a/Tiles/LivingHellstoneTile.cs b/Tiles/LivingHellstoneTile.cs index 1374696..246aef3 100644 --- a/Tiles/LivingHellstoneTile.cs +++ b/Tiles/LivingHellstoneTile.cs @@ -47,20 +47,20 @@ public override void ModifyLight(int i, int j, ref float r, ref float g, ref flo public override void PostLoad() { - placeItem = SimplePrototypeItem.MakePlaceable(mod, "LivingHellstoneItem", Type); - placeItem.item.rare = ItemRarityID.Green; - placeItem.item.mech = false; + PlaceItem = SimplePrototypeItem.MakePlaceable(mod, "LivingHellstoneItem", Type); + PlaceItem.item.rare = ItemRarityID.Green; + PlaceItem.item.mech = false; } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(ItemID.HellstoneBar, 5); r.AddIngredient(ItemID.Obsidian, 5); r.AddIngredient(ItemID.LavaBucket, 1); r.AddTile(TileID.Anvils); - r.SetResult(placeItem.item.type, 1); + r.SetResult(PlaceItem.item.type, 1); r.AddRecipe(); } } diff --git a/Tiles/MagicStorageInterfaceTile.cs b/Tiles/MagicStorageInterfaceTile.cs index 3a01dc4..76da6a2 100644 --- a/Tiles/MagicStorageInterfaceTile.cs +++ b/Tiles/MagicStorageInterfaceTile.cs @@ -27,7 +27,7 @@ protected override void SetTileObjectData() public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "MagicStorageInterfaceItem", Type, 32, 32); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "MagicStorageInterfaceItem", Type, 32, 32); } } } \ No newline at end of file diff --git a/Tiles/OmniTurretTile.cs b/Tiles/OmniTurretTile.cs index 0d605a9..ed6654c 100644 --- a/Tiles/OmniTurretTile.cs +++ b/Tiles/OmniTurretTile.cs @@ -117,7 +117,7 @@ public override void MouseOver(int i, int j) if (tile == null || !tile.active()) return; - Main.LocalPlayer.showItemIcon2 = placeItems[GetDropKind(tile.frameX, tile.frameY)].item.type; + Main.LocalPlayer.showItemIcon2 = PlaceItems[GetDropKind(tile.frameX, tile.frameY)].item.type; Main.LocalPlayer.showItemIcon = true; } @@ -128,23 +128,23 @@ public override int GetDropKind(int Fx, int Fy) public override void PostLoad() { - placeItems = new ModItem[3]; + PlaceItems = new ModItem[3]; int sell = Item.sellPrice(0, 1, 0, 0); //Omni turret - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "OmniTurretItem", Type, 32, 32, 0, sell); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "OmniTurretItem", Type, 32, 32, 0, sell); //Super omni turret - placeItems[1] = SimplePrototypeItem.MakePlaceable(mod, "SuperOmniTurretItem", Type, 32, 32, 1, sell); + PlaceItems[1] = SimplePrototypeItem.MakePlaceable(mod, "SuperOmniTurretItem", Type, 32, 32, 1, sell); //Matter projector - placeItems[2] = SimplePrototypeItem.MakePlaceable(mod, "MatterProjectorItem", Type, 32, 32, 2, sell); + PlaceItems[2] = SimplePrototypeItem.MakePlaceable(mod, "MatterProjectorItem", Type, 32, 32, 2, sell); NetRouter.AddHandler(this); } - public override void Addrecipes() + public override void AddRecipes() { //Omni turret ModRecipe r = new ModRecipe(mod); @@ -152,7 +152,7 @@ public override void Addrecipes() r.AddIngredient(ItemID.IllegalGunParts, 1); r.AddIngredient(ItemID.DartTrap, 1); r.AddTile(TileID.WorkBenches); - r.SetResult(placeItems[0], 1); + r.SetResult(PlaceItems[0], 1); r.AddRecipe(); //Super omni turret @@ -160,7 +160,7 @@ public override void Addrecipes() r.AddIngredient(mod.ItemType("OmniTurretItem"), 1); r.AddIngredient(ItemID.Cog, 10); r.AddTile(TileID.WorkBenches); - r.SetResult(placeItems[1], 1); + r.SetResult(PlaceItems[1], 1); r.AddRecipe(); //Matter projector @@ -169,7 +169,7 @@ public override void Addrecipes() r.AddIngredient(ItemID.FragmentVortex, 5); r.AddIngredient(ItemID.LunarBar, 5); r.AddTile(TileID.LunarCraftingStation); - r.SetResult(placeItems[2], 1); + r.SetResult(PlaceItems[2], 1); r.AddRecipe(); } diff --git a/Tiles/PlayerInterfaceTile.cs b/Tiles/PlayerInterfaceTile.cs index b6aab49..8f7bbbc 100644 --- a/Tiles/PlayerInterfaceTile.cs +++ b/Tiles/PlayerInterfaceTile.cs @@ -31,10 +31,10 @@ protected override void SetTileObjectData() public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "PlayerInterfaceItem", Type, 26, 26, 0, Item.sellPrice(0, 1, 0, 0)); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "PlayerInterfaceItem", Type, 26, 26, 0, Item.sellPrice(0, 1, 0, 0)); } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(mod.PlaceItemType(0), 1); @@ -42,7 +42,7 @@ public override void Addrecipes() r.AddIngredient(ItemID.Mannequin, 1); r.AddIngredient(ItemID.Cog, 10); r.AddTile(TileID.WorkBenches); - r.SetResult(placeItems[0]); + r.SetResult(PlaceItems[0]); r.AddRecipe(); } } diff --git a/Tiles/Simple/SimplePlaceableTile.cs b/Tiles/Simple/SimplePlaceableTile.cs index 0615073..d47eacb 100644 --- a/Tiles/Simple/SimplePlaceableTile.cs +++ b/Tiles/Simple/SimplePlaceableTile.cs @@ -4,11 +4,11 @@ namespace MechTransfer.Tiles.Simple { public abstract class SimplePlaceableTile : SimpleTile { - public ModItem placeItem { get; protected set; } + public ModItem PlaceItem { get; protected set; } public override void SetDefaults() { - drop = placeItem.item.type; + drop = PlaceItem.item.type; } } } \ No newline at end of file diff --git a/Tiles/Simple/SimpleTile.cs b/Tiles/Simple/SimpleTile.cs index 81501b3..b236309 100644 --- a/Tiles/Simple/SimpleTile.cs +++ b/Tiles/Simple/SimpleTile.cs @@ -8,7 +8,7 @@ public virtual void PostLoad() { } - public virtual void Addrecipes() + public virtual void AddRecipes() { } diff --git a/Tiles/Simple/SimpleTileObject.cs b/Tiles/Simple/SimpleTileObject.cs index 413842b..20735e6 100644 --- a/Tiles/Simple/SimpleTileObject.cs +++ b/Tiles/Simple/SimpleTileObject.cs @@ -11,7 +11,7 @@ public abstract class SimpleTileObject : SimpleTile { //Actually, It's not simple at all... - protected ModItem[] placeItems = new ModItem[1]; + protected ModItem[] PlaceItems = new ModItem[1]; public TileObjectData tileObjectData { get; protected set; } protected bool simpleHeigth; @@ -38,7 +38,7 @@ public override void SetDefaults() public ModItem GetPlaceItem(int kind) { - return placeItems[kind]; + return PlaceItems[kind]; } public int GetStyle(Tile tile) @@ -67,7 +67,7 @@ public override void KillTile(int i, int j, ref bool fail, ref bool effectOnly, protected virtual void DropItem(int i, int j, int Fx, int Fy) { - Item.NewItem(new Rectangle(i * 16, j * 16, 16, 16), placeItems[GetDropKind(Fx, Fy)].item.type); + Item.NewItem(new Rectangle(i * 16, j * 16, 16, 16), PlaceItems[GetDropKind(Fx, Fy)].item.type); } public Point16 GetOrigin(int x, int y) diff --git a/Tiles/SmallButtonTile.cs b/Tiles/SmallButtonTile.cs index 343fc7d..362be8a 100644 --- a/Tiles/SmallButtonTile.cs +++ b/Tiles/SmallButtonTile.cs @@ -46,7 +46,7 @@ protected override void SetTileObjectData() public override void MouseOver(int i, int j) { Main.LocalPlayer.showItemIcon = true; - Main.LocalPlayer.showItemIcon2 = placeItems[0].item.type; + Main.LocalPlayer.showItemIcon2 = PlaceItems[0].item.type; Main.LocalPlayer.noThrow = 2; } @@ -78,20 +78,20 @@ public override void AnimateIndividualTile(int type, int i, int j, ref int frame public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "SmallButtonItem", Type, 20, 20, 0, Item.sellPrice(0, 0, 4, 0)); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "SmallButtonItem", Type, 20, 20, 0, Item.sellPrice(0, 0, 4, 0)); NetRouter.AddHandler(this); } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(ItemID.Switch, 1); - r.SetResult(placeItems[0], 1); + r.SetResult(PlaceItems[0], 1); r.AddRecipe(); r = new ModRecipe(mod); - r.AddIngredient(placeItems[0], 1); + r.AddIngredient(PlaceItems[0], 1); r.SetResult(ItemID.Switch, 1); r.AddRecipe(); } diff --git a/Tiles/StackExtractorTile.cs b/Tiles/StackExtractorTile.cs index b2ddc81..ade0b81 100644 --- a/Tiles/StackExtractorTile.cs +++ b/Tiles/StackExtractorTile.cs @@ -52,15 +52,15 @@ public override void HitWire(int i, int j) public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "StackExtractorItem", Type, 16, 16, 0, Item.sellPrice(0, 1, 0, 0)); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "StackExtractorItem", Type, 16, 16, 0, Item.sellPrice(0, 1, 0, 0)); } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(mod.ItemType("TransferExtractorItem"), 1); r.AddIngredient(ItemID.Nanites, 10); - r.SetResult(placeItems[0], 1); + r.SetResult(PlaceItems[0], 1); r.AddTile(TileID.WorkBenches); r.AddRecipe(); } diff --git a/Tiles/TransferAssemblerTile.cs b/Tiles/TransferAssemblerTile.cs index 71ffc18..e421040 100644 --- a/Tiles/TransferAssemblerTile.cs +++ b/Tiles/TransferAssemblerTile.cs @@ -236,16 +236,16 @@ public static string ItemNameById(int id) public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferAssemblerItem", Type, 16, 16, 0, Item.sellPrice(0, 1, 0, 0)); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferAssemblerItem", Type, 16, 16, 0, Item.sellPrice(0, 1, 0, 0)); } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(mod.ItemType(), 1); r.AddIngredient(ItemID.Cog, 10); r.AddTile(TileID.WorkBenches); - r.SetResult(placeItems[0], 1); + r.SetResult(PlaceItems[0], 1); r.AddRecipe(); } } diff --git a/Tiles/TransferExtractorTile.cs b/Tiles/TransferExtractorTile.cs index 3d394e9..d4440ec 100644 --- a/Tiles/TransferExtractorTile.cs +++ b/Tiles/TransferExtractorTile.cs @@ -51,16 +51,16 @@ protected override void SetTileObjectData() public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferExtractorItem", Type); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferExtractorItem", Type); } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(mod.ItemType(), 1); r.AddIngredient(ItemID.GoldenKey, 1); r.AddIngredient(ItemID.Wire, 2); - r.SetResult(placeItems[0].item.type, 1); + r.SetResult(PlaceItems[0].item.type, 1); r.AddTile(TileID.WorkBenches); r.AddRecipe(); } diff --git a/Tiles/TransferFilterTile.cs b/Tiles/TransferFilterTile.cs index c79b02a..9ef62a6 100644 --- a/Tiles/TransferFilterTile.cs +++ b/Tiles/TransferFilterTile.cs @@ -73,18 +73,18 @@ public override int GetDropKind(int Fx, int Fy) public override void PostLoad() { - placeItems = new ModItem[2]; + PlaceItems = new ModItem[2]; //Filter - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferFilterItem", Type, 16, 16, 0); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferFilterItem", Type, 16, 16, 0); //InverseFilter - placeItems[1] = SimplePrototypeItem.MakePlaceable(mod, "InverseTransferFilterItem", Type, 16, 16, 1); + PlaceItems[1] = SimplePrototypeItem.MakePlaceable(mod, "InverseTransferFilterItem", Type, 16, 16, 1); LoadFilters(); } - public override void Addrecipes() + public override void AddRecipes() { //Filter ModRecipe r = new ModRecipe(mod); @@ -92,11 +92,11 @@ public override void Addrecipes() r.AddIngredient(ItemID.Actuator, 1); r.AddIngredient(ItemID.ItemFrame, 1); r.AddTile(TileID.WorkBenches); - r.SetResult(placeItems[0], 1); + r.SetResult(PlaceItems[0], 1); r.AddRecipe(); ModRecipe r2 = new ModRecipe(mod); - r2.AddIngredient(placeItems[1]); - r2.SetResult(placeItems[0], 1); + r2.AddIngredient(PlaceItems[1]); + r2.SetResult(PlaceItems[0], 1); r2.AddRecipe(); //InverseFilter @@ -105,11 +105,11 @@ public override void Addrecipes() r.AddIngredient(ItemID.Actuator, 1); r.AddIngredient(ItemID.ItemFrame, 1); r.AddTile(TileID.WorkBenches); - r.SetResult(placeItems[1], 1); + r.SetResult(PlaceItems[1], 1); r.AddRecipe(); r2 = new ModRecipe(mod); - r2.AddIngredient(placeItems[0]); - r2.SetResult(placeItems[1], 1); + r2.AddIngredient(PlaceItems[0]); + r2.SetResult(PlaceItems[1], 1); r2.AddRecipe(); LoadBagFilter(); diff --git a/Tiles/TransferGateTile.cs b/Tiles/TransferGateTile.cs index cb3b3d5..d44c91c 100644 --- a/Tiles/TransferGateTile.cs +++ b/Tiles/TransferGateTile.cs @@ -50,16 +50,16 @@ public bool ShouldPassthrough(Point16 location, Item item) public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferGateItem", Type); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferGateItem", Type); } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(mod.ItemType(), 1); r.AddIngredient(ItemID.Actuator, 1); r.AddTile(TileID.WorkBenches); - r.SetResult(placeItems[0], 1); + r.SetResult(PlaceItems[0], 1); r.AddRecipe(); } } diff --git a/Tiles/TransferInjectorTile.cs b/Tiles/TransferInjectorTile.cs index 1d13e9b..e258d92 100644 --- a/Tiles/TransferInjectorTile.cs +++ b/Tiles/TransferInjectorTile.cs @@ -48,16 +48,16 @@ public bool Receive(Point16 location, Item item) public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferInjectorItem", Type); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferInjectorItem", Type); } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(mod.ItemType(), 1); r.AddIngredient(ItemID.GoldenKey, 1); r.AddIngredient(ItemID.Wire, 2); - r.SetResult(placeItems[0], 1); + r.SetResult(PlaceItems[0], 1); r.AddTile(TileID.WorkBenches); r.AddRecipe(); } diff --git a/Tiles/TransferInletTile.cs b/Tiles/TransferInletTile.cs index f713019..fed140a 100644 --- a/Tiles/TransferInletTile.cs +++ b/Tiles/TransferInletTile.cs @@ -46,15 +46,15 @@ public bool ShouldPassthrough(Point16 location, Item item) public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferInletItem", Type, 32, 14); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferInletItem", Type, 32, 14); } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(mod.ItemType(), 1); r.AddIngredient(ItemID.InletPump, 1); - r.SetResult(placeItems[0].item.type, 1); + r.SetResult(PlaceItems[0].item.type, 1); r.AddTile(TileID.WorkBenches); r.AddRecipe(); diff --git a/Tiles/TransferOutletTile.cs b/Tiles/TransferOutletTile.cs index e793045..beff6a7 100644 --- a/Tiles/TransferOutletTile.cs +++ b/Tiles/TransferOutletTile.cs @@ -51,15 +51,15 @@ public bool Receive(Point16 location, Item item) public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferOutletItem", Type); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferOutletItem", Type); } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(mod.ItemType(), 1); r.AddIngredient(ItemID.OutletPump, 1); - r.SetResult(placeItems[0].item.type, 1); + r.SetResult(PlaceItems[0].item.type, 1); r.AddTile(TileID.WorkBenches); r.AddRecipe(); } diff --git a/Tiles/TransferPipeTile.cs b/Tiles/TransferPipeTile.cs index 7c8d02b..93f28aa 100644 --- a/Tiles/TransferPipeTile.cs +++ b/Tiles/TransferPipeTile.cs @@ -64,17 +64,17 @@ private bool shouldConnect(int x, int y, int offsetX, int offsetY) public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferPipeItem", Type); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferPipeItem", Type); } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(mod.ItemType(), 1); r.AddIngredient(ItemID.IronBar, 1); r.anyIronBar = true; r.AddTile(TileID.Anvils); - r.SetResult(placeItems[0].item.type, 25); + r.SetResult(PlaceItems[0].item.type, 25); r.AddRecipe(); } } diff --git a/Tiles/TransferRelayTile.cs b/Tiles/TransferRelayTile.cs index dc0b34e..2d51c4f 100644 --- a/Tiles/TransferRelayTile.cs +++ b/Tiles/TransferRelayTile.cs @@ -64,17 +64,17 @@ public bool Receive(Point16 location, Item item) public override void PostLoad() { - placeItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferRelayItem", Type, 32, 16); + PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferRelayItem", Type, 32, 16); } - public override void Addrecipes() + public override void AddRecipes() { ModRecipe r = new ModRecipe(mod); r.AddIngredient(mod.ItemType(), 1); r.AddIngredient(ItemID.RedPressurePlate, 1); r.anyPressurePlate = true; r.AddTile(TileID.WorkBenches); - r.SetResult(placeItems[0], 1); + r.SetResult(PlaceItems[0], 1); r.AddRecipe(); } } From d0d3bf8e649950b6e73274197dd034682ecd0d76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sun, 23 Jun 2019 02:29:48 +0200 Subject: [PATCH 28/33] Removed redundant reference to Terraria.exe --- MechTransfer.csproj | 3 --- 1 file changed, 3 deletions(-) diff --git a/MechTransfer.csproj b/MechTransfer.csproj index 6a961a0..ec5e659 100644 --- a/MechTransfer.csproj +++ b/MechTransfer.csproj @@ -93,9 +93,6 @@ $(userprofile)\Documents\My Games\Terraria\ModLoader\Mods\MagicStorage.All.dll - - D:\SteamLibrary\steamapps\common\Terraria\Terraria.exe - From 68d646ec470f3b35060f801d7723c8df8d1006ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sun, 23 Jun 2019 16:31:38 +0200 Subject: [PATCH 29/33] Revised item rarities --- Items/SimplePrototypeItem.cs | 2 ++ Tiles/BigButtonTile.cs | 1 + Tiles/OmniTurretTile.cs | 3 +++ Tiles/PlayerInterfaceTile.cs | 1 + Tiles/SmallButtonTile.cs | 1 + Tiles/StackExtractorTile.cs | 1 + Tiles/TransferAssemblerTile.cs | 1 + 7 files changed, 10 insertions(+) diff --git a/Items/SimplePrototypeItem.cs b/Items/SimplePrototypeItem.cs index be1711d..9bc92c9 100644 --- a/Items/SimplePrototypeItem.cs +++ b/Items/SimplePrototypeItem.cs @@ -1,5 +1,6 @@ using System; using Terraria; +using Terraria.ID; using Terraria.ModLoader; namespace MechTransfer.Items @@ -52,6 +53,7 @@ public static SimplePrototypeItem MakePlaceable(Mod mod, string name, int placeT i.item.mech = true; i.item.createTile = placeType; i.item.placeStyle = placeStyle; + i.item.rare = ItemRarityID.Blue; return i; } diff --git a/Tiles/BigButtonTile.cs b/Tiles/BigButtonTile.cs index 3335c70..14ccedb 100644 --- a/Tiles/BigButtonTile.cs +++ b/Tiles/BigButtonTile.cs @@ -74,6 +74,7 @@ public override void AnimateIndividualTile(int type, int i, int j, ref int frame public override void PostLoad() { PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "BigButtonItem", Type, 24, 20); + PlaceItems[0].item.rare = ItemRarityID.White; NetRouter.AddHandler(this); } diff --git a/Tiles/OmniTurretTile.cs b/Tiles/OmniTurretTile.cs index ed6654c..1bf4ace 100644 --- a/Tiles/OmniTurretTile.cs +++ b/Tiles/OmniTurretTile.cs @@ -134,12 +134,15 @@ public override void PostLoad() //Omni turret PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "OmniTurretItem", Type, 32, 32, 0, sell); + PlaceItems[0].item.rare = ItemRarityID.Green; //Super omni turret PlaceItems[1] = SimplePrototypeItem.MakePlaceable(mod, "SuperOmniTurretItem", Type, 32, 32, 1, sell); + PlaceItems[1].item.rare = ItemRarityID.LightRed; //Matter projector PlaceItems[2] = SimplePrototypeItem.MakePlaceable(mod, "MatterProjectorItem", Type, 32, 32, 2, sell); + PlaceItems[2].item.rare = ItemRarityID.Cyan; NetRouter.AddHandler(this); } diff --git a/Tiles/PlayerInterfaceTile.cs b/Tiles/PlayerInterfaceTile.cs index 8f7bbbc..f6ad811 100644 --- a/Tiles/PlayerInterfaceTile.cs +++ b/Tiles/PlayerInterfaceTile.cs @@ -32,6 +32,7 @@ protected override void SetTileObjectData() public override void PostLoad() { PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "PlayerInterfaceItem", Type, 26, 26, 0, Item.sellPrice(0, 1, 0, 0)); + PlaceItems[0].item.rare = ItemRarityID.LightRed; } public override void AddRecipes() diff --git a/Tiles/SmallButtonTile.cs b/Tiles/SmallButtonTile.cs index 362be8a..6ca3c48 100644 --- a/Tiles/SmallButtonTile.cs +++ b/Tiles/SmallButtonTile.cs @@ -79,6 +79,7 @@ public override void AnimateIndividualTile(int type, int i, int j, ref int frame public override void PostLoad() { PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "SmallButtonItem", Type, 20, 20, 0, Item.sellPrice(0, 0, 4, 0)); + PlaceItems[0].item.rare = ItemRarityID.White; NetRouter.AddHandler(this); } diff --git a/Tiles/StackExtractorTile.cs b/Tiles/StackExtractorTile.cs index ade0b81..0ec23bd 100644 --- a/Tiles/StackExtractorTile.cs +++ b/Tiles/StackExtractorTile.cs @@ -53,6 +53,7 @@ public override void HitWire(int i, int j) public override void PostLoad() { PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "StackExtractorItem", Type, 16, 16, 0, Item.sellPrice(0, 1, 0, 0)); + PlaceItems[0].item.rare = ItemRarityID.LightRed; } public override void AddRecipes() diff --git a/Tiles/TransferAssemblerTile.cs b/Tiles/TransferAssemblerTile.cs index e421040..f29a40e 100644 --- a/Tiles/TransferAssemblerTile.cs +++ b/Tiles/TransferAssemblerTile.cs @@ -237,6 +237,7 @@ public static string ItemNameById(int id) public override void PostLoad() { PlaceItems[0] = SimplePrototypeItem.MakePlaceable(mod, "TransferAssemblerItem", Type, 16, 16, 0, Item.sellPrice(0, 1, 0, 0)); + PlaceItems[0].item.rare = ItemRarityID.LightRed; } public override void AddRecipes() From b08a70fae448f45987f2b327b2d01766ff0dad07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sun, 23 Jun 2019 16:33:05 +0200 Subject: [PATCH 30/33] Fixed filter item tooltip capitalization --- Localization/en-US.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/en-US.lang b/Localization/en-US.lang index 76cac35..73ac288 100644 --- a/Localization/en-US.lang +++ b/Localization/en-US.lang @@ -55,7 +55,7 @@ ItemName.TransferAssemblerItem = Transfer Assembler ItemTooltip.TransferAssemblerItem = WIP\nCrafts items automatically\nRight click with item in hand to set filter Common.ItemName.FilterItem = Item Filter -Common.ItemTooltip.FilterItem = Use in Transfer filter +Common.ItemTooltip.FilterItem = Use in Transfer Filter ItemName.AnyFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Any) ItemName.Rarity-GrayFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-Gray) ItemName.Rarity-WhiteFilterItem = {$Mods.MechTransfer.Common.ItemName.FilterItem} (Rarity-White) From a928041f2b34ced34daeec4d661ffa75516c87c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sun, 23 Jun 2019 17:51:22 +0200 Subject: [PATCH 31/33] Added filter items for weapon class --- Items/ItemFilterItem.xcf | Bin 37378 -> 46100 bytes Items/MagicFilterItem.png | Bin 0 -> 768 bytes Items/MeleeFilterItem.png | Bin 0 -> 617 bytes Items/RangedFilterItem.png | Bin 0 -> 683 bytes Items/SummonFilterItem.png | Bin 0 -> 992 bytes Items/ThrownFilterItem.png | Bin 0 -> 539 bytes Localization/en-US.lang | 5 +++++ Tiles/TransferFilterTile.cs | 6 ++++++ 8 files changed, 11 insertions(+) create mode 100644 Items/MagicFilterItem.png create mode 100644 Items/MeleeFilterItem.png create mode 100644 Items/RangedFilterItem.png create mode 100644 Items/SummonFilterItem.png create mode 100644 Items/ThrownFilterItem.png diff --git a/Items/ItemFilterItem.xcf b/Items/ItemFilterItem.xcf index bea26da1c48702f969975a2713f759255c2d7caf..73b81693e57842543b6f566bb8ae1f460d09e770 100644 GIT binary patch literal 46100 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 Br}6** literal 37378 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
    2I5kk$aR9Go4reiyN#OhKAw)q=}v! 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 RWSPj^{{L&~Tk&4|{{sU>99aMW diff --git a/Items/MagicFilterItem.png b/Items/MagicFilterItem.png new file mode 100644 index 0000000000000000000000000000000000000000..5b47a22fe2459437b1a0ea55a4039edf33ed241c GIT binary patch literal 768 zcmV+b1ONPqP)jLs&MAw-?`MzAQHi5hUq zSvV?U8(r4qLdF&^a}fnCT!aG=WV3SBU&f6{3o(q6iok_nLB!}Z%3!1jgZ)8*2;#Ju zp3dl-=gc52I&gWHd+$5n`7Y=C-ctZ!Z$h!!Ea4wTsWB0;CRSD50l@07v+46I18EwH zV)?$YpBJO5Iu`&N?YDXIcAzLmCHa8djohI|`^^EZf=j1fQMvzR@mH4%Bp3=2i9}e8 zU&YAk(K1c-ZBDc_xk~O7mIUQzrsplzUbaJZI{Yg zjbJFmn-|XjSXxY)f*4(up(8QVS58L3P>2U3BRi6}JJb0NA1YE%B9b-!RwkLz>{g|% z4*7l`k#Ez|b7E`X?0n{W-p=6nXk72_;$VG%vZf{;5A?9MQG`EjSGJ-kVyyc;8oq#s z5ARcS*yov8ckv@O1;FG-Yey-_8SItSoYsy2FtP5Ux4V&_Hg#8!g4){%m&ZvjFte~s zczBHI*#*m-RqD( zEh@U#Aq^G2;(^RSL_~D2W0Q?BZ*|(ttS5g)W}$l>BA?=t8V$?bP)im_AwZj5XC|~Z ywVa#5lRTV^0gy;-@HGB4mwpth_E-M9|GGa7bL#EpacQ3b0000X;luXRXOwoaxFo3*Bz`xqu4$w;bHg+0Eh=w zoE_|mHg2(RJh@fiS+2(Mv7 zUB>yb4d^;=N%2+D00000NkvXXu0mjf DtmOpW literal 0 HcmV?d00001 diff --git a/Items/RangedFilterItem.png b/Items/RangedFilterItem.png new file mode 100644 index 0000000000000000000000000000000000000000..22ded5dc0e12443c5815c32be97f14b1b458d8e3 GIT binary patch literal 683 zcmV;c0#yBpP)YzhKohmr?@Y2a360?;OEOt0?{T$kR-t{hb$weLf z;KA|U@4fGRzxVrd3IO8IK#5wsfPVx@L^5);M%cvdcad^Gs?{n0z_#tcZPpY8+otf% z&0W5hOc4NV)@qW_M>1H&+MeShSy{O~vHJ*sEr7bN^VRw~bzLV(wg7UlN}58>Y2^mr zzZ)`_tuU9Z(A^*BI;lt)25j3#$Fk7OWPZDAZ-7UNAvb(K8DQ(d6O`0Cmag0#TTLo* zwW$F+Jskef zoyU!<&!LqY$!lG)SVYIN(Cv1os&%P2gMPn{%~}ne7`qp5Z(^$IedsvoSe7sHj(;AH zEJrfOCds3=VT4BAyt*8Ss;Tnm@x>k%)9H~WQMVuIy0&3}By?Rz+c1Eg9?;a_?C%F6 z?wfOh{OkfsYCS9u74L{tR1iY8g>6&#RJjBtwT}GET(W)?z?rIo5K>iU<`TB<-@%u! zZ}8#c!@t*$yk$o#H^%NqzMAGGap97+P7m{uB_;|BWl3g=(6w=il>hF(?iWe~IxBi* R(c}OC002ovPDHLkV1n%;IgS7T literal 0 HcmV?d00001 diff --git a/Items/SummonFilterItem.png b/Items/SummonFilterItem.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a90608cae6ca2f442ae4acca67a1691b79af18 GIT binary patch literal 992 zcmV<610Vc}P)0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbQT1iAfR7l6wmS1R7R~*MbH{Tv5lJJ6XgBtdKCFA_m{S;CcZ*M{sM)|jMR4MJgC$Os)?x#f zdrN6ZEE2nyvxj-ll9+1J$-p06xc8jj`F+p#_xpX%xe6e7HKx31(!u{^4ff07%Y)p% zJXe#NS7|%DG$!IBY}Rn1TpD4#VMIu`|C z*S0ORwr!G3?D2foTwUrat?T3g0NGt_2X~Zh#GbReu0%(on!Z*9^85V&RlCau*L7Xi z;AKD!_DiJ>6h#pL{wkZ$b)8V8pHQS387n9D+?o@?a7<>pVmK+Q|D)5&24&Ma5^o^&O3v4Z`2S8x0lkm?enrqcj zFdSo{)5mb+a{$H`3tas50RUfo)<$|ZOTjdFbY%B`(^1CCVJtZqTP%>C&0H#7O9$h(u* z_!c-6^#brP-X{xxak_~53=p7T8mqhbn!aDa^X3B?$Zi6)#fg7|o5`WyX?#2-83Igo ze_YeWSM>x4hGW9p^N&EiJ(@^O=Y_XNd+rn{Req)5ON9So9lf^yb$qLm=Q0 zT=WF4y@s2BW+y_4E~G6KS}*Xs@rN0mM3YD@ATHUNMy3;_U9 z6d?>l5K$vCCB)3_6JKqQ z*uQ;ZwLP}$BT*6r0S1GC6Bku=NxVdI`3dqoN0w!+T)Wa4vMh7PN5CoPvP;hA x.pick > 0 || x.axe > 0 || x.hammer > 0); createFilter("Weapon", ItemID.CopperShortsword, x => x.damage > 0 && x.pick == 0 && x.axe == 0 && x.hammer == 0); + createFilter("Melee", ItemID.CopperShortsword, x => x.melee); + createFilter("Magic", ItemID.LesserManaPotion, x => x.magic); + createFilter("Ranged", ItemID.WoodenBow, x => x.ranged); + createFilter("Summon", ItemID.SummoningPotion, x => x.summon); + createFilter("Thrown", ItemID.Shuriken, x => x.thrown); + createFilter("Consumable", ItemID.PumpkinPie, x => x.consumable); createFilter("Material", ItemID.Wood, x => x.material); From 7816039c6aaeaf9916b23f6908a0dc9ef99dc3bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sun, 23 Jun 2019 17:51:47 +0200 Subject: [PATCH 32/33] Added thanks section to readme --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index ac8eb81..da8ded1 100644 --- a/README.md +++ b/README.md @@ -19,4 +19,8 @@ Currently supported mods: - [Portable Storage](https://forums.terraria.org/index.php?threads/portable-storage.65161/) - [Magic Storage](https://forums.terraria.org/index.php?threads/magic-storage.56294/) (Support built into MechTransfer) +# Special Thanks +- [@Flithor](https://github.com/Flithor) for the Chinese translation +- [@Vedomir](https://forums.terraria.org/index.php?members/vedomir.130490/) for the Russian translation +- [@RonRicoSuave](https://github.com/RonRicoSuave) for help with spriting From cf6f6d98a476095da7e5edcc270461cccc41e5a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1lm=C3=A1n=20Vince?= <30904009+DRKV333@users.noreply.github.com> Date: Sun, 23 Jun 2019 18:01:08 +0200 Subject: [PATCH 33/33] Bumped version --- build.txt | 2 +- description.txt | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/build.txt b/build.txt index 95df5c4..d66fea1 100644 --- a/build.txt +++ b/build.txt @@ -1,5 +1,5 @@ author = DRKV -version = 1.6.2 +version = 1.7 displayName = MechTransfer includePDB = false weakReferences = MagicStorage@0.4.3.1 diff --git a/description.txt b/description.txt index af72b7d..43acd4c 100644 --- a/description.txt +++ b/description.txt @@ -80,4 +80,15 @@ v1.6.1 v1.6.2 - Improved assembler area drawing -- Added transition markers \ No newline at end of file +- Added transition markers + +v1.7 +- Added localization support +- Added Chinese translation by @Flithor +- Added Russian translation by @Vedomir +- Fixed various problems related to zoom +- Fixed Extractinator mod incompatibilities +- Improved all tile sprites +- Tweaked tile map colors, item name capitalization, and items rarities +- Added filter items for weapon class +- Added Living Hellstone \ No newline at end of file