tModLoader MechTransfer - Item translocation and more...

Well, making just the assembler work with the crafting interface would not really work. I'd basically have turn the crafting interface into a "container" which would make the magic storage interface useless.

Thanks for the Info, guess I'll have to plan alot more Room into the housings then for all the needed crafting stations ;)
 
There is a little bug: Pneumatic component costs 50 silver, but 1 transport pipe costs 1gold. But recipe is 1 iron, 1 component = 25 transport pipes, it means money farm bug

And, i updated russian localization
 
Last edited:
About the Coin condensing/exchanging Setup using the Assembler,

extract-condense.JPG


It seems to work fine when using the same chest/container to extract from and condense/exchange into. (The Small setup on the top right, Including modded Coins like Ingcrinite Coin from EternitysEnd: 999 platinum Coins -> 1 Ingcrinite Coin)

But trying to extract coins from one Container and have them condense/exchange into another Container doesn't work because then the assembler goes for the reversed recipe (setup below the Character)

Building it the reversed way for an automated exchange down in 'coin tier' over different Container actually worked for me. Plat to Gold etc.
but who really wants/needs that? :D

The Containers i use are Locker from ElementsAwoken Mod. they work like normal Chests but look cooler :cool:

The Extractinator Setup works aswell but it pretty much freezes my Screen until it finished it's task :eek: (Use at your own risk on slower pc's)

Main reason i tried this coin exchange setup is because the Extractinator Setup ends up filling the first Container faster with stacks of copper coins then anything else even when doing a direct exchange to silver coins on the same Container, resulting in pretty quick overflow letting all stuff drop then on the inlet's
(which is probably one part of the harsh framedrop/freeze)

Maybe you can hardcode the Assembler to use coin upgrade exchange/condense recipes? atleast for the 3 vanilla coin types?
 
There is a little bug: Pneumatic component costs 50 silver, but 1 transport pipe costs 1gold. But recipe is 1 iron, 1 component = 25 transport pipes, it means money farm bug
Oh oh, I guess I must have messed something up when switching to the new system for placeable items... Thanks for the report, I'll look into it.

And, i updated russian localization
Thanks, I'll merge that as soon as I have the time for it. :)

About the Coin condensing/exchanging Setup using the Assembler,

View attachment 226541

It seems to work fine when using the same chest/container to extract from and condense/exchange into. (The Small setup on the top right, Including modded Coins like Ingcrinite Coin from EternitysEnd: 999 platinum Coins -> 1 Ingcrinite Coin)

But trying to extract coins from one Container and have them condense/exchange into another Container doesn't work because then the assembler goes for the reversed recipe (setup below the Character)

Building it the reversed way for an automated exchange down in 'coin tier' over different Container actually worked for me. Plat to Gold etc.
but who really wants/needs that? :D

The Containers i use are Locker from ElementsAwoken Mod. they work like normal Chests but look cooler :cool:

The Extractinator Setup works aswell but it pretty much freezes my Screen until it finished it's task :eek: (Use at your own risk on slower pc's)

Main reason i tried this coin exchange setup is because the Extractinator Setup ends up filling the first Container faster with stacks of copper coins then anything else even when doing a direct exchange to silver coins on the same Container, resulting in pretty quick overflow letting all stuff drop then on the inlet's
(which is probably one part of the harsh framedrop/freeze)

Maybe you can hardcode the Assembler to use coin upgrade exchange/condense recipes? atleast for the 3 vanilla coin types?
Right now my problem is, that I do have a pretty good idea on how I want to reimplement the assemblers, but that would take a lot of work. It would pretty much be a "v2.0" type deal, if you know what I mean. ;) But I also have other mods to work on and now school has started... So I don't have the time to make this mod work the way I want it to. I guess in the mean time I could try hacking the current system a bit to make it work more reliably in common use cases.

I don't totally get how your setup works, but it does look pretty cool, that's for sure. :) The assemblers don't actually connect to pipes, they just sit next to a chest and work with the storage in there. Generally, you'd use them, by injecting the materials into the chest, triggering the assembler, and finally extracting the results through a whitelist filter.

The freeze you are getting could be from a few different things. It's kinda difficult to say what it's from exatcly without profiling it. Depending on how you have your wiring setup, it could also just be due to too many things triggering too many times.

Sorry for the late reply, I had a pretty busy week.
 
Right now my problem is, that I do have a pretty good idea on how I want to reimplement the assemblers, but that would take a lot of work. It would pretty much be a "v2.0" type deal, if you know what I mean. ;) But I also have other mods to work on and now school has started... So I don't have the time to make this mod work the way I want it to. I guess in the mean time I could try hacking the current system a bit to make it work more reliably in common use cases.

That's alright i'm a patient player and gives me time to try around a little more with the already existing stuff ;)

I don't totally get how your setup works, but it does look pretty cool, that's for sure. :)

Well it Stackwise extracts Silt Slush and Dessert Fossil i've stored in Magic Storage System into the Extractors all at once soaks all up into the first container just behind the relay.

Until the First locker runs full of coins it works as expected. The idea i had initially was using a transferfilter soaking all coins into a separate container (the middle one in the row) and from there stepwise pass them into further Containers for each increase in coin tier.

The assemblers don't actually connect to pipes, they just sit next to a chest and work with the storage in there. Generally, you'd use them, by injecting the materials into the chest, triggering the assembler, and finally extracting the results through a whitelist filter.

Thats where i thought if putting an extractor next to the assembler would kind of tell it some kind of "flow" direction from where to take and where to store the finished crafts.

So i Reworked the Part a bit.

extract-coin-condense.JPG


This way the sequence of coin tier ups works as i wanted but i have no more space for a pipe system that extracts partial stacks of coins.
Putting the Extractor under the injector short Circuits then with the Injector. putting the injector adjacent to the assembler for some reason messes up the Assembler ( takes downgrade recipe instead of upgrade)

I Also tried putting the extractor ontop of the other Extractor but that causes the upper Extractor and the Assembler to Act wierd (probably becasue both take up the same connection spot on the Container then)

Right now the Char is pretty rich already and it's not hurting that much that i can't access every single coin.

if the assembler/injector/extractor tiles would count as a platform like thing just as it does with the inlets and the extractinator i could remove one of the bricks the container is standing on and use that space to build the pipe for partial coin stacks. just an idea/suggestion ;)

The freeze you are getting could be from a few different things. It's kinda difficult to say what it's from exatcly without profiling it. Depending on how you have your wiring setup, it could also just be due to too many things triggering too many times.

i'm Pretty sure it's because i'm also using Maxstacks+ mod and stack extractors on all 3 extraction pipes that are all wired to the same "go" button, so basically 3 times up to 9999 Stacksize on instant :eek:
if i replace the stack extractors with normal extractors it's just some (expected) minor framedrops from ~60 down to ~48
 
Another bug:
Buttons doesnt update, when block they placed on breaks and they have a wall behind
 

Attachments

  • Capture 2019-09-18 21_08_20.png
    Capture 2019-09-18 21_08_20.png
    416.9 KB · Views: 158
Putting the Extractor under the injector short Circuits then with the Injector. putting the injector adjacent to the assembler for some reason messes up the Assembler ( takes downgrade recipe instead of upgrade)

I Also tried putting the extractor ontop of the other Extractor but that causes the upper Extractor and the Assembler to Act wierd (probably becasue both take up the same connection spot on the Container then)
That's weird, these should really have no effect on how the extractor works. Though it's entirely possible I messed up something there. It would somewhat explain the inconsistent issues some other people were having.

if the assembler/injector/extractor tiles would count as a platform like thing just as it does with the inlets and the extractinator i could remove one of the bricks the container is standing on and use that space to build the pipe for partial coin stacks. just an idea/suggestion
Yeah, but then you could use them as magical floating platforms that you can just place midair and jump on. This sort of stuff has been suggested before. It might be more convenient for building large machines, but I don't want to entirely break the game.

i'm Pretty sure it's because i'm also using Maxstacks+ mod and stack extractors on all 3 extraction pipes that are all wired to the same "go" button, so basically 3 times up to 9999 Stacksize on instant :eek:
if i replace the stack extractors with normal extractors it's just some (expected) minor framedrops from ~60 down to ~48
Just increasing the stack size shouldn't really be a problem. The stack extractor still only starts one transaction. I also noticed, that I coded the extractinator adapter to only extract a single item per transaction. So normal extractors and stack extractors should function the same. The performance drop might be due to some unnecessary item cloning I'm doing. It could also be something Magic Storage is doing.

Another bug:
Buttons doesnt update, when block they placed on breaks and they have a wall behind
Wow, how have I not noticed this before? :)
 
Yeah, but then you could use them as magical floating platforms that you can just place midair and jump on. This sort of stuff has been suggested before. It might be more convenient for building large machines, but I don't want to entirely break the game.

It wouldn't be something new since all of Magic Storage's tiles are placeable without a wall or block nearby and except for the upgraded Storage Unit tiles all act as platforms. o_O

mstorage floating.JPG


But i get what you mean ;)
 
If the project is still in development, may I make a suggestion. To improve the automation capabilities of the mod, here is an idea. Something like the "chunk loader" (If you have played Minecraft), it mimics a player being nearby, for letting things spawn even if you are not physically at the farm yourself. To keep it from breaking the game, make it something like, post Moonlord. I feel like this will really improve the mod.
 
If the project is still in development, may I make a suggestion. To improve the automation capabilities of the mod, here is an idea. Something like the "chunk loader" (If you have played Minecraft), it mimics a player being nearby, for letting things spawn even if you are not physically at the farm yourself. To keep it from breaking the game, make it something like, post Moonlord. I feel like this will really improve the mod.
This mod is continuously in development, I just have no time to work on it currently. :)
This is a pretty cool idea, but unfortunately NPC spawning is yet another one of those things in terraria, that is very heavily tied to the player. One way it may be possible to do, is by creating some sort of "fake player", which would also mean you'd need to be in some sort of multiplayer mode... I'm not sure. It might be possible, but it would be pretty complicated.
 
This mod is continuously in development, I just have no time to work on it currently. :)
This is a pretty cool idea, but unfortunately NPC spawning is yet another one of those things in terraria, that is very heavily tied to the player. One way it may be possible to do, is by creating some sort of "fake player", which would also mean you'd need to be in some sort of multiplayer mode... I'm not sure. It might be possible, but it would be pretty complicated.
I mean it in like LAN/dedicated server context yes. Thanks for even considering. I see how it can be VERY complicated! To do it, maybe use some kind of fake entity that shares the player's coding somewhat, in the spawnrate sense?
 
Another sugestion, a block that mimicks left or right click on an item. For example ( this is a bad one, i cant remember the real one) auto cannon turner for auto turrets so it sweeps 360 degrees, or a system that auto deactivates a timer when the system is full, to keep it from backing up - every second the block clicks and makes it turn. This will be very useful in some cases
 
I mean it in like LAN/dedicated server context yes. Thanks for even considering. I see how it can be VERY complicated! To do it, maybe use some kind of fake entity that shares the player's coding somewhat, in the spawnrate sense?
The problem is, that it's really not enough to fake just a couple of members of the player class. I would need to deal with the zone (biome) finding logic, it would need a proper inventory, it would need to take care of equipment or buffs that could change spawn rates and than that doesn't even account for weird things other mods would try to do while checking for spawns... So it would pretty much have to be an actual player.
This is kind of outside the scope of this mod. I do have a different project in mind though, that this would fit into quite well. Basically, it would be yet another attempt at a sort of "multiple dimentions" library, involving multiple different server instances networked together with some form of IPC. For this I'd have to hijack to whole player management code anyway, so adding a couple fake ones probably won't be too hard. :) This mod is still in the "idea" stage though, so it might not happen any time soon.

Another sugestion, a block that mimicks left or right click on an item. For example ( this is a bad one, i cant remember the real one) auto cannon turner for auto turrets so it sweeps 360 degrees, or a system that auto deactivates a timer when the system is full, to keep it from backing up - every second the block clicks and makes it turn. This will be very useful in some cases
Omni Turrets (if that's what you mean) can already be rotated with wires, just like the vanilla cannons. I was sort of thinking about a machine that could invoke the use action of an item, but that is also something you need a player for. Plus I don't necessarily want people to start summoning bosses automagically. :D
Right clicking on tiles doesn't directly use a player, or least the TModLoader hook doesn't use one. But, the right clicking code will usually check the player belonging to the running game instance, to get things like the held items. So this leads back to the same problem.
On the other hand, I'm not sure how necessary this would even be. I implemented extractinator support as a container. For that I ended up having to duplicate most of the code for determining to extracted item, cause again, the vanilla code needs a player. I made the DD2 crystal stand into a container. (Out of spite, because of how unautomatable that bloody event is. :mad:) Other than that I'm not sure what else really needs to be right clicked.
 
The problem is, that it's really not enough to fake just a couple of members of the player class. I would need to deal with the zone (biome) finding logic, it would need a proper inventory, it would need to take care of equipment or buffs that could change spawn rates and than that doesn't even account for weird things other mods would try to do while checking for spawns... So it would pretty much have to be an actual player.
This is kind of outside the scope of this mod. I do have a different project in mind though, that this would fit into quite well. Basically, it would be yet another attempt at a sort of "multiple dimentions" library, involving multiple different server instances networked together with some form of IPC. For this I'd have to hijack to whole player management code anyway, so adding a couple fake ones probably won't be too hard. :) This mod is still in the "idea" stage though, so it might not happen any time soon.


Omni Turrets (if that's what you mean) can already be rotated with wires, just like the vanilla cannons. I was sort of thinking about a machine that could invoke the use action of an item, but that is also something you need a player for. Plus I don't necessarily want people to start summoning bosses automagically. :D
Right clicking on tiles doesn't directly use a player, or least the TModLoader hook doesn't use one. But, the right clicking code will usually check the player belonging to the running game instance, to get things like the held items. So this leads back to the same problem.
On the other hand, I'm not sure how necessary this would even be. I implemented extractinator support as a container. For that I ended up having to duplicate most of the code for determining to extracted item, cause again, the vanilla code needs a player. I made the DD2 crystal stand into a container. (Out of spite, because of how unautomatable that bloody event is. :mad:) Other than that I'm not sure what else really needs to be right clicked.
I was thinking about autofarming bosses yeah. Is the Lihzhard Altar, like thr crystal stand, a container. It would make sense if that also worked like that.
And, just asking, wouldn't a simple NPC with their enemy spawning values changed be enough? At least for vanilla? Also, why isn'nt there a specific filter for ore, to avoid things like gel, bones ect. from filtering through your auto smelter. ( using the player interaction interface.) Yes, I know you can simply only whitelist a ceratin ore, but for a general ore extractor, you need 5+ whitelist filters.
 
Last edited:
And, just asking, wouldn't a simple NPC with their enemy spawning values changed be enough? At least for vanilla?
I don't really know what you mean by that exactly, but probably not. There isn't really a simple way to do this.

Also, why isn'nt there a specific filter for ore, to avoid things like gel, bones ect. from filtering through your auto smelter. ( using the player interaction interface.) Yes, I know you can simply only whitelist a ceratin ore, but for a general ore extractor, you need 5+ whitelist filters.
I've explained this a few times before, the basic gist of it is that ores don't really a property that would allow them to be easily distinguished from other other items. Unlike weapons for instance, that have a non zero damage value. However, am planning to add a sort of regex item filter, that would allow player to filter stuff by things by name. A simple search for "ore" in the wouldn't be accurate enough to bake into a filter item, but with this setup the will be able to tune the filter to their specific use case.

Sorry I didn't answer earlier, I was super busy, and then I kinda forgot about this thread... :p

Is there a chance we can get roof versions of the turrets?
Oh, that's actually a pretty cool idea. It might be a bit tricky to get rotated versions of the turret tile to fit into the same sprite sheet, since I'm already using the Y axis for the different aim directions. I like this idea though, I will look into it at some point. :)
 
On Windows the mod works... or rather, maybe works, since I wanna use it in multiplayer I am disabling because of the actual issue:

On Linux, the mod fails to load with this error:

"It has been detected that this mod was built for tModLoader v0.10.1.5
However, you are using tModLoader v0.11.5"

While on Windows it doesn't give that error.
 
On Windows the mod works... or rather, maybe works, since I wanna use it in multiplayer I am disabling because of the actual issue:

On Linux, the mod fails to load with this error:

"It has been detected that this mod was built for tModLoader v0.10.1.5
However, you are using tModLoader v0.11.5"

While on Windows it doesn't give that error.
Yeah, so not too long ago the TModLoader guys changes a bunch of things, that should completely break most mods. However, they set up a thing, where TModLoader can automagically update older mods to make them work. I guess that upgrade functionality doesn't work on Linux. Maybe try loading the mod on windows once, and then move the upgraded .tmod file over to Linux. I'm not sure that would work, but it's worth a try.
Making the mod actually compile with the current version is gonna take a bit of time.
 
Yeah, so not too long ago the TModLoader guys changes a bunch of things, that should completely break most mods. However, they set up a thing, where TModLoader can automagically update older mods to make them work. I guess that upgrade functionality doesn't work on Linux. Maybe try loading the mod on windows once, and then move the upgraded .tmod file over to Linux. I'm not sure that would work, but it's worth a try.
Making the mod actually compile with the current version is gonna take a bit of time.

You trying to do that currently? If not, can I try to do it myself?
 
You trying to do that currently? If not, can I try to do it myself?
Oh, you mean the "updating MechTransfer to compile on TModLoader 0.11" part? You are more than welcome to do that. :D It shouldn't be too difficult to do, as far as I remember I didn't do anything too crazy in this mod.
 
Back
Top Bottom