Ipsis / Woot

The alternative mob spawner/grinder system
GNU Lesser General Public License v3.0
46 stars 26 forks source link

[Suggestion]An automatic Stygian Iron Anvil #269

Open SihenZhang opened 6 years ago

SihenZhang commented 6 years ago

First of all, so sorry cuz when I'm cleaning my keyboard, the issue is submit.

Although crafting through Stygian Iron Anvil is interesting, it is hard to automatically craft. What about adding an automatic Stygian Iron Anvil?

Ipsis commented 6 years ago

An impressive initial issue title :) It should be possible to automate the anvil with other mods - well that is my hope. I'm thinking a dropper and then some kind of right click block holding the hammer to do the crafting.

SihenZhang commented 6 years ago

In 1.12, I think only User in Extra Utilities 2 can do this. But I think I CANNOT install Extra Utilities 2 only for its User, though it has a lot of useful(?) things.

Ipsis commented 6 years ago

Is the Autonomous Activator not in Thermal Expansion now? I've been watching too much 1.10 YouTube that I'm not sure what is possible now.

SihenZhang commented 6 years ago

No. :( Since 1.10.2, Autonomous Activator has been deleted. So only User in Extra Utilities can do this.

Ipsis commented 6 years ago

I'll try and come up with something that allows the current one to be automated. I'm looking at a piston hitting the anvil with a Stygian Iron Block, but that pushes the items off, so it might have to be on the side instead, which wont look right, but would let you automate with a little extra code on my side.

forestbat commented 6 years ago

In fact we don't need a fake player or a multi-block structure——we only want an anvil which can hold items and finish recipes automatically like OpenBlocks。

Ipsis commented 6 years ago

To make the anvil hold items, would basically mean rewriting it to handle inventories and that is something that I don't want to do.

SihenZhang commented 6 years ago

Sorry but I don't think that it is a good way :(

Why not make an automatic Stygian Iron Anvil which is just like Automatic Combustion in Sky Resources 2?

In Sky Resources 2, you can drop items above the Combustion Heater in a structure which is a 1 by 1 by 1 space surrounded by blocks. And replace one of the side block of the structure with the Smart Combustion Controller can do this automatically.

What about make an automatic Stygian Iron Anvil or a Stygian Iron Anvil Controller just like things above. I think that will be better than a boring piston.

Ipsis commented 6 years ago

Quite simply because it is a lot of coding effort to make a multiblock and there are too many other things in the mod that still need written. I might consider it in the future but for now people will just have to use the manual method.

Mohron commented 6 years ago

image ^ Really not much fun...

Minecraft, Botania, RFTools, Extra Utilities 2, & Woot were all used in this "compact" setup.

Ipsis commented 6 years ago

I applaud your ingenuity good sir :)

Mohron commented 6 years ago

I wasn't mine but one of my players! It doesn't change the plate so multiple of these set ups would be needed if not modified or changed manually. Either way, I'm on team "please add an automated Stygian Iron Anvil" lol.

thicket404 commented 6 years ago

I am on team “add a config for crafting grid crafting”

Mohron commented 6 years ago

@thicket404 I will be writing a craft tweaker script just for that purpose.

The entire purpose of woot, IMHO, is simple, efficient, and powerful mob farming... Only the new crafting mechanic completely undermines the simplicity and has caused nearly all my players to refuse to even attempt to use woot since all other spawner setups are much easier to use.

calloatti commented 6 years ago

I too have not used Woot yet, because of the changes to the crafting methods. To grindy for my taste and overly complicated and boring crafting mechanics.

Sorry if this offends you, hope it helps.

Edit: May I suggest, maybe, the anvil can take items from a chest to its left, for example, use a piston like you described to craft the item, then place the crafted item in a chest to its right?

That way you don't need the anvil to hold any items.

Mohron commented 6 years ago

That's basically the consensus from my player base as well unfortunately.

Ipsis commented 6 years ago

So help me out here, since I tried to do something different and people seem not to like it. This is the first feedback I've had. What makes it too grindy? Do I dump the anvil completely and just use the crafting table or is it number of resources needed or something else.

Mohron commented 6 years ago

Here's my thoughts:

IMO if the anvil mechanic was only used for a small portion of the crafts, like the programmed mob controllers for instance, it wouldn't really be so problematic

Ipsis commented 6 years ago

That helps a lot. So I'll look at adding crafting recipes for everything and deal with excess materials afterwards. I'll limit the anvil usage to the controller binding and the initial die creation. The dies will be used in the vanilla crafting, the same way as the 1.10 version of the mod. Ill do this in addition to the current mechanisms so that both are there just now and go from there.

mote commented 6 years ago

Another vote of support for more automatible non-in-world crafting.

Thanks for being so receptive to our feedback, Ipsis.

SihenZhang commented 6 years ago

Actually, I think the crafting method like Stygian Iron Anvil is interesting. But, during making a Tier IV mob factory, I am tired of the annoying Stygian Iron Anvil. So I think you can let players use Stygian Iron Anvil by hands in the early stage, like stuff Tier I and Tier II need. And use another way to craft stuff in Tier III and Tier IV in a GUI which is easier to craft things automatically.

Mohron commented 6 years ago

As long as you use the anvil for Key-crafting recipes, it will stay relevant without being a burden. Controller binding and die creation are both good uses for the anvil, IMO.

Ipsis commented 6 years ago

I'll take a look over the next few days to see what is possible, specifically I need to get the die not being consumed by the vanilla, but that should't be a big issue. So hopefully all going well I'll be able to push out the new recipes this weekend. No promises, but that is what I'll aim for.

Ipsis commented 6 years ago

I've started the tedious task of writing the recipe json files, I just need to ensure that they all work. So what I've done is (basically what I said I was going to)

The current anvil recipes will remain.

calloatti commented 6 years ago

Great changes! Thanks!

molander-dev commented 6 years ago

Honestly, I don't agree with you guys.

I think this new crafting mechanic is adding some extra fun and tbh its not really that hard to automate and dosnt require much.

For example: image

This small setup i used to autocraft stygian iron dust, add a dropper and put an export bus and u have the automation done.

Ipsis commented 6 years ago

Pretty much why I'm leaving both recipe types in and give people the option of which to use.

So I can use condition factories to enable or disable the recipes. This would mean a config option of allowAnvilVaniaCrafting. This would default to false and people could enable it if they want.

This keeps the mod as people are used to and doesn't break anything that they have. It also gives those that want to limit the anvil an option to turn, without having to create their own recipes.

molander-dev commented 6 years ago

Wouldnt just a simple if statement checking the config work before you add the recipes?

Ipsis commented 6 years ago

In 1.12 recipes are loaded by Forge via Json files, not by the mods themselves. To disable recipes you have to do a bit extra work. But you are right. For pre-1.12 a simple if would have been enough.

Ipsis commented 6 years ago

https://github.com/Ipsis/Woot/commit/8a6229bf0cb8d3f3c3a734ffb088a60c2a143dca

molander-dev commented 6 years ago

I was planning on updating to 0.0.6 tomorrow but i might just ask now when this is planned to be released? Cause maybe i should just wait for 0.0.7 instead

Ipsis commented 6 years ago

0.0.7 will only be for this change. So unless something bad turns up, I'm hoping to get this released tomorrow. I just need to test all the recipes (that will be fun) and ensure I can enable/disable the crafting table ones.

Ipsis commented 6 years ago

1.12.2-0.0.7 has been uploaded for Curse and is awaiting approval.

Just a reminder:

The option is disabled by default. Enabling the option in the config file will add vanilla recipes along with adding all the standard anvil recipes.

https://github.com/Ipsis/Woot/wiki/Woot-Changelog-1.12#1122-007-beta

Yukigamine commented 6 years ago

I cannot seem to get the new configuration option to work...

I've enabled allowAnvilVanillaCrafting in woot.cfg on the server, but the vanilla recipes don't show up in NEI. I'm not sure if the issue is in NEI, the client (does the change have to been made client-side too?), the server or what. I can post logs, but as always, FTB logs are incredibly bloated so direction to finding relevant sections would be appreciated.

Minecraft 1.12.2 FTB Revelation 2.4.0 Forge 14.23.4.2750 Woot 1.12.2-1.4.2

Edit: Making the change client-side in addition to server-side seems to have resolved the issue. Shouldn't making the change server-side the clients see the changed recipes?

Ipsis commented 6 years ago

The recipes that you see in JEI and all taken from the client-side information rather than being synced from the server. So unfortunately you have to set it on both sides. Well that is my understanding as to how it works.

Glad you have it fixed though.

Gamertech commented 5 years ago

I've enabled the crafting recs in my pack as Woot is completely unplayable with magnet buffs such as Genetic Reborn's item attraction gene which can't be easily disabled.

I've also manually added recipes for the dies with CT, but the Factory Controller requires an NBT tag on the ender shard in order to create a programmed controller block. Have you got a way to feed this to CraftTweaker at all? Can't find anything on the wiki.

LMongoose commented 5 years ago

Why are everyone complaining about the anvil system? I found it relatively easy to automate the crafting of it, I needed to make 4 anvils, build a "tube" with droppers on top (the amount varies depending on the type of recipe), a redstone circuit with tripwire that when items fall through the tube the side wall of the tube (where there is a vacuum hopper) closes and the items fall on the anvil and the same circuit activates a mechanical user with the woot hammer on the anvil, completing the crafting process, 5 seconds after the items fall by the tripwire, the circuit resets, opening the wall and letting the vacuum hopper suck the crafted item. I needed 4 anvils because I divided the recipes into 4 groups: Mesh Die, Plate Die, Shard Die and Core Die, each anvil is able to craft all the recipes in your group and the conduits that insert the items in the droppers have filters for each item of the recipe go for a dropper.

structure: 2018-11-09_22 36 57 2018-11-09_22 37 10

recipe pattern to configure the filters: woot anvil recipe pattern (see that the core die needs 3 droppers because have 3 columns of ingredients and each dropper needs to be configured to accept only one column of items :P)

Ipsis commented 5 years ago

@Gamertech apologies, I didn't see your posting. Unfortunately I've never interacted with CraftTweaker so cannot really give any pointers. Is there any specific information you need such as the NBT information?

wamc2017 commented 5 years ago

@Gamertech,

if you hold a programmed shard/controller in your hand and you use the command "/ct hand" (without the quotes) it prints out the item id with nbt tag (and copies it to the clipboard, so you can paste it into the script) A basic script would look like this for a pig spawner: recipes.addShapeless(<woot:controller>.withTag({wootMobNameKey: "minecraft:pig", wootMobDeaths: 1, wootMobDisplayName: "Pig", wootMobNameTag: ""}), [<woot:endershard>.withTag({wootMobNameKey: "minecraft:pig", wootMobDeaths: 1, wootMobDisplayName: "Pig", wootMobNameTag: ""}),<woot:factorycore:1>,<woot:factorybase>]);

If you want to do this for more then one spawner, you've to do this for every spawner you want, or you use a script like this:

import crafttweaker.item.IItemStack;
import crafttweaker.data.IData;

var mobs as IData[IData] = {};
mobs["Pig"] = "minecraft:pig";
mobs["Chicken"] = "minecraft:chicken";

for DisplayName, MobName in mobs {
    var tag as IData = {wootMobNameKey: MobName, wootMobDeaths: 1, wootMobDisplayName: DisplayName, wootMobNameTag: ""};
    var controller as IItemStack = <woot:controller>.withTag(tag);
    var shard as IItemStack = <woot:endershard>.withTag(tag);

    recipes.addShapeless(controller, [shard,<woot:factorycore:1>,<woot:factorybase>]);
}

This adds Pigs and Chickens, but if you want to add for instance Slimes, you've to add this line: mobs["Slime"] = "minecraft:slime";

Gamertech commented 5 years ago

@Ipsis Essentially, all I'm after is a crafting table rec for making the controller with a programmed shard, as it's impossible to craft with a Genetics Reborn magnet buff and similar without using a dropper/user system.

Making a simple crafting rec with a shard and core obviously doesn't work as the mob NBT doesn't carry over and makes a blank controller.

I could make a rec for every mob as per wamc2017's script, but there's a ton of mobs in my pack and they're all useful to farm, so that's a whole lot of scripting. I'd much prefer native support for a factory controller crafting rec that can be enabled/disabled in config same as the current crafting recs if possible.