Vanilla Minecraft Potion Logic

This forum is for anything that doesn't specifically have to do with Better Than Wolves
Post Reply
User avatar
JakeZKAM
Posts: 326
Joined: Fri Dec 14, 2012 12:37 am

Vanilla Minecraft Potion Logic

Post by JakeZKAM »

So after I looked into the newest hardcore addition to BTW (Which I am absolutely loving. I love building roads to all my buildings anyways and this makes it worthwhile) I at first cried at the loss of speed potions. I understand the reason behind it but I was still in denial. I absolutely love the Idea of mixing potions, fusing together magical items, general magic and alchemy the whole shtick, but after thinking about it I became glad that speed potions had been ripped. I pretty much only ever used speed potions as all the other kinds were usually useless or just not fun to try and make. Then it got me thinking about the entire system itself, and eventually started raging about the lack of Design to the system itself, or the logic behind it :/

For example the process of making potions is just so... boring. Kill a blaze, get some netherwart, boil it, add ingredient X and BAM portable magic effect. Um what? Too easy, too boring, and just not intuitive or requiring thinking. only 7 potion types and the poison one is completely useless as a drinkable potion, the materials are far too easy to obtain, and it never feels like I've truly accomplished something when I brew potions, I just feel like I used a cheat code -.-.

And as a side note the whole Redstone Extending Duration, Glowstone Enhancing it, and Gunpowder making it throwable drives me fucking nuts. Redstone is a conducter it shouldn't make a potion last longer, Glowstone gives off fucking light, that's it >.<, Gunpowder added to a potion does not suddenly allow you to throw it.

Sorry about the rant but the potions system is just pissing me off at such wasted potential and I'm very thankful for all of the features in BTW to entertain me instead :)
User avatar
Graphite
Posts: 390
Joined: Sun Mar 18, 2012 3:12 am

Re: Vanilla Minecraft Potion Logic

Post by Graphite »

Gunpowder is explosive. I always thought the idea behind adding gunpowder is that you make potions that explode on impact, thereby making it interesting for the game to allow said potions to be thrown (as opposed to regular potions, where players would just go "wtf? why can I even throw that!?").

Ditto for redstone. Redstone contains some power as well (as noticeable from the redstone torch, which can power other redstone indefinitely). Apparently mixing that redstone into the potion through means undescribed causes some of that power to transfer to the potion, resulting in a longer duration.

Really, those ingredients don't seem that ridiculous to me.
User avatar
EpicAaron
Posts: 540
Joined: Sat Jun 09, 2012 9:08 am

Re: Vanilla Minecraft Potion Logic

Post by EpicAaron »

I must agree that the brewing system as it is now is quite borring, and would have much rather been able to throw the ingredients into a cauldron (which could potentially have allowed for cool automation). I think that was the original idea for vanilla cauldrons before they were changed into brewing stands.
Last edited by EpicAaron on Tue Feb 12, 2013 10:24 pm, edited 1 time in total.
BTW Community Server Discord: https://discord.gg/arZpuYW
Spoiler
Show
Image
User avatar
AngelWithDirtyHands
Posts: 193
Joined: Thu Sep 22, 2011 3:56 pm

Re: Vanilla Minecraft Potion Logic

Post by AngelWithDirtyHands »

Just curious (as I have no idea on how to mod) but would it be possible to have an add-on to BTW which rips out the Vanilla brewing system and replaces it with something more... sensible? I remember from previous posts that FC sees potion brewing as low on his list of priorities (fair enough, considering the awesome content we've seen lately). Wondering if the possibility held... you never know, I might even try to pick up some Java if I have time around my course...
Spoiler
Show
Zen Proclivities wrote:Much obliged to all your devilish details FC.
...except for Hardcore Bucket, that one is a bitch. But such is life, and life says work for it you pussy.
User avatar
magikeh
Posts: 945
Joined: Mon Jul 04, 2011 9:57 pm
Location: Top -o- the Tower

Re: Vanilla Minecraft Potion Logic

Post by magikeh »

EpicAaron wrote:I must agree that the brewing system as it is now is quite borring, and would have much rather been able to throw the ingredients into a cauldron (which could potentially have allowed for cool automation). I think that was the original idea for vanilla cauldrons before they was changed into brewing stands.
+1

I do enjoy making potions, it is fun to run around on a server and while invisible shoot rotten arrows at people and throw poison potions at em, but really i do agree making potions is a bore. I really do feel that Jeb had something good going with the entire, use a cauldron add a few things, let it boil then scoop it out with the bottles, if your brewing sucked you were stuck with an unusable potion (drink it to get the bottle back?? ;) ) And on a side note, iv'e always thought that glowstone increased the potency of a potion because it absorbed the excess water in it, thus increasing the concentration of ingredients... sorta. And to finish off, i think the original (good) potions idea was scrapped, just because i guess it was easier for Jeb to make a GUI then an interactive gameplay mechanism. >.>


Edit: Just a thought but it would be neat to have potions that didnt have names, and rather you had to tell them apart by the colour. (The colour defines the main attribute of the potion, and there can be a few side effects.)
Magical Shit
Show
Syruse|Work: i like magic shit
MagikEh: ...
MagikEh: >.>
MagikEh: <.<
»» MagikEh walks to the bathroom
Syruse|Work: hahaaaaaaaaa
Syruse|Work: wait
MagikEh: xD
Syruse|Work: fuck
Syruse|Work: NO
Syruse|Work: DONT
EtherealWrath
Posts: 298
Joined: Sun Dec 23, 2012 1:37 pm

Re: Vanilla Minecraft Potion Logic

Post by EtherealWrath »

As far as I'm aware, Mojang went for the brewing stand option instead of the cauldr *ahm*cistern- as the latter would need a block/liquid ID for each ingredient combination, as well as the item ID's used by the former.
-It may work if the cistern was a tile entity, and contained a acted as a small chest (without a GUI)

The stand itself kinda reminds me of chemistry class, though I'd like to see potion effects become stronger with more active ingredient added (say speed I [15sec] with 1 sugar, speed II [45sec] for 2 sugars ect) instead of random reagents like redstone/glowstone.

I think it also represents the more precise measurements needed when mixing such potions, as opposed to whack it in and hope it works. (though it'll be a nice mechanic for making the fermented spider eyes and similar base ingredients)

Its just one of those systems that's kinda good- but could use a lot more love to really flesh it out into something worthwhile.
(Right now it is somewhat boring and out of balance, somehow ingesting nether fungus, blaze power and slime makes you impervious to fire! without feeling any side effects)
Phantom screams echo through the ruined facility
A horrible silence builds an eerie tranquility
The souls of many innocent fill the air
The hope they all died with scattered down there
User avatar
DNoved1
Posts: 221
Joined: Wed Jan 23, 2013 5:29 pm

Re: Vanilla Minecraft Potion Logic

Post by DNoved1 »

EtherealWrath wrote:As far as I'm aware, Mojang went for the brewing stand option instead of the cauldr *ahm*cistern- as the latter would need a block/liquid ID for each ingredient combination, as well as the item ID's used by the former.
-It may work if the cistern was a tile entity, and contained a acted as a small chest (without a GUI)
The cistern actually did work like that in 1.9 pre 2, with only a single Block Id (it used a tile entity though). According to this tweet and the Minecraft Wiki, the cistern brewing system was apparently scrapped because it was too complex/tedious.

It might be possible (I'd have to look at the 1.9 pre 2 code) to actually convert cisterns back into their old counterparts, and allow brewing through them.
User avatar
FlowerChild
Site Admin
Posts: 18753
Joined: Mon Jul 04, 2011 7:24 pm

Re: Vanilla Minecraft Potion Logic

Post by FlowerChild »

Using a tile entity on something as uncommon as a vanilla cauldron is really not a big deal. They're isolated utility blocks, which to my mind is specifically what tile ents *should* be used for.

Where it becomes an issue is in blocks that you expect to be using in huge numbers like Gear Boxes, or Axles, or Siding. This is one of the points where my block design philosophy and that of other "tech mods" radically differs as to my knowledge, most of those kind of mods liberally use tile entities for precisely those kinds of blocks.

And of course, forget about using tile ents in anything to do with terrain and world gen. That's just asking for trouble. If you were to assign tile ents to dirt, stone, or wood for example, I'm fairly certain that performance would immediately tank.
Six
Posts: 599
Joined: Sat Jun 02, 2012 6:27 am

Re: Vanilla Minecraft Potion Logic

Post by Six »

DNoved1 wrote:
EtherealWrath wrote:As far as I'm aware, Mojang went for the brewing stand option instead of the cauldr *ahm*cistern- as the latter would need a block/liquid ID for each ingredient combination, as well as the item ID's used by the former.
-It may work if the cistern was a tile entity, and contained a acted as a small chest (without a GUI)
The cistern actually did work like that in 1.9 pre 2, with only a single Block Id (it used a tile entity though). According to this tweet and the Minecraft Wiki, the cistern brewing system was apparently scrapped because it was too complex/tedious.

It might be possible (I'd have to look at the 1.9 pre 2 code) to actually convert cisterns back into their old counterparts, and allow brewing through them.
This was how they looked back then, though were never obtainable in game:
Spoiler
Show
Image
It would be quite fun to play with the idea of potions only being 'described' by their colour and having no tooltip. You could map the effects across a HSL colour space and just have potion ingredients 'pull' the colour in different directions in that space. Then have the potion effect tied to the Hue and stronger effects with higher Saturation, or something like that. Maybe with some overlap is areas of the space, so that you could get potions with multiple effects.

Alternatively, you could have more like a Morrowind system (only less broken). Ingredients having multiple 'effects' they add to a brew, with some effects able to cancel out others. Say for example magma cream might add one level of fire resistance, but also one level of slowness. Sugar could add one level of speed, which would cancel out the slowness, but might itself add two levels of hunger. etc.

I dunno, they didn't want it to be tedious, but I feel there are far more interesting ways to do it than what they went for in the end.
User avatar
DNoved1
Posts: 221
Joined: Wed Jan 23, 2013 5:29 pm

Re: Vanilla Minecraft Potion Logic

Post by DNoved1 »

Six wrote:Alternatively, you could have more like a Morrowind system (only less broken). Ingredients having multiple 'effects' they add to a brew, with some effects able to cancel out others. Say for example magma cream might add one level of fire resistance, but also one level of slowness. Sugar could add one level of speed, which would cancel out the slowness, but might itself add two levels of hunger. etc.
The original system actually worked somewhat like that. Adding ingredients had a seemingly random(though it truly wasn't) effect on the current brew, including adding water (to dilute it). You could get really good potions with strong negatives as well, such as Instant Health III, Hunger II, Poison II. It truly required a good bit of experimentation to get good brews, and thus encouraged mass gathering of ingredients and perhaps even recording of "recipes" in books.

If anyone is curious and wants to try out the old system I would recommend some sort of client rollback tool such as MCNostalgia and this mod, which enables the cauldron. Try testing it out in creative, it's pretty neat.
User avatar
DNoved1
Posts: 221
Joined: Wed Jan 23, 2013 5:29 pm

Re: Vanilla Minecraft Potion Logic

Post by DNoved1 »

DNoved1 wrote:It might be possible (I'd have to look at the 1.9 pre 2 code) to actually convert cisterns back into their old counterparts, and allow brewing through them.
Well, after a few days of looking over the code, I have managed to recreate 1.9 pre 2 brewing in 1.4.7. Unfortunately, I can't replace the vanilla cistern with my own because that would require redistributing a class FC edits. Instead I simply went with creating an entirely new block which just so happens to look suspiciously like the cistern.

Download -Removed

Pics:
Spoiler
Show
Image
Spoiler
Show
Image
Spoiler
Show
Image
Things to note/issues:
-Doesn't replace the vanilla cistern
-Seems to work just fine with BTW 4.56
-Uses block Id 179
-The color of the brew in the cauldron is slightly off
-Is quite possibly completely OP with regards to BTW balance
-You cannot currently throw the potions
-The cauldron does not render correctly as an item
-Only the original 7 ingredients have an effect(Sugar, Blaze Powder, Magma Cream, Spider Eye, Fermented Spider Eye, Ghast Tear, and Nether Wart)
-You can dilute the brew by adding water as long as the cauldron isn't full
-Will not wash your clothes for you(unlike the cistern)

P.S. Drinking an Instant Damage III potion instantly kills you, so I wouldn't recommend doing that
Last edited by DNoved1 on Tue Feb 19, 2013 8:56 pm, edited 1 time in total.
User avatar
PatriotBob
Posts: 276
Joined: Mon Sep 10, 2012 10:47 pm

Re: Vanilla Minecraft Potion Logic

Post by PatriotBob »

Very nice.

See this is a better system, and what we should have had in place of brewing stands.

I don't play with any mods on my server, but if you keep this up I just might change that. :)
Image
User avatar
magikeh
Posts: 945
Joined: Mon Jul 04, 2011 9:57 pm
Location: Top -o- the Tower

Re: Vanilla Minecraft Potion Logic

Post by magikeh »

DNoved1 wrote: Well, after a few days of looking over the code, I have managed to recreate 1.9 pre 2 brewing in 1.4.7. Unfortunately, I can't replace the vanilla cistern with my own because that would require redistributing a class FC edits. Instead I simply went with creating an entirely new block which just so happens to look suspiciously like the cistern.
... ... :D THANK YOU! This is excellent! one of the most awesome things that i have seen in a loong time, just the ability to create potions without a gui, and no real direction nor sense of what is going on is the most fun thing ever! This is just super sweet. One question tho, are you thinking of turning this into an actual addon? I could see the cauldrons needing some steel to be created, anyways i am super excited and i really do hope that you pursue this as an actual addon/mod. Also if you are able to make this smp i will suggest the shit out of it! Thank you so much again for this ^_^/

/me runs off to his BTW world
Magical Shit
Show
Syruse|Work: i like magic shit
MagikEh: ...
MagikEh: >.>
MagikEh: <.<
»» MagikEh walks to the bathroom
Syruse|Work: hahaaaaaaaaa
Syruse|Work: wait
MagikEh: xD
Syruse|Work: fuck
Syruse|Work: NO
Syruse|Work: DONT
User avatar
DNoved1
Posts: 221
Joined: Wed Jan 23, 2013 5:29 pm

Re: Vanilla Minecraft Potion Logic

Post by DNoved1 »

Well, I am looking at expanding/fixing some of its functionality. For example, potions created by the cistern aren't actually potions, so I'll have to add a buoyancy and hopper value for them. I've got the buoyancy thing done, but am still looking at how I can add a hopper value. I also need to fix the item rendering and colors of the brew.

One other thing I'm looking at it automation. I've got code to automatically add ingredients to the brew when they are on top of the cistern as well as a way to automatically refill it. My current issue lies in how to get the potion into a bottle automatically - I haven't thought of a reasonable way to do that yet. Currently, my best idea would be to drop empty bottles on the cauldron to fill them up, but when you actually think about it that makes very little sense, unless your bottles' corks are animated and can come on and off the bottle at will.

I also need to take a serious look at re-balancing the effects you can get - as you can see from one of the pictures I posted, it is possible to get an Instant Damage III potion which kills you instantly, no matter what, which is obviously really overpowered with regards to pvp. Also, I could be wrong, but aren't mods automatically SMP supported since the 1.3 server-client merge?
User avatar
magikeh
Posts: 945
Joined: Mon Jul 04, 2011 9:57 pm
Location: Top -o- the Tower

Re: Vanilla Minecraft Potion Logic

Post by magikeh »

DNoved1 wrote: Also, I could be wrong, but aren't mods automatically SMP supported since the 1.3 server-client merge?
Heh, no i just tried it, went online, crafted it. tried to take it out of the crafting grid and i wasnt allowed.. I am assuming its beacuse
-The server doesnt have the mod installed?
-You're using a block that is not recgonized by the server
Magical Shit
Show
Syruse|Work: i like magic shit
MagikEh: ...
MagikEh: >.>
MagikEh: <.<
»» MagikEh walks to the bathroom
Syruse|Work: hahaaaaaaaaa
Syruse|Work: wait
MagikEh: xD
Syruse|Work: fuck
Syruse|Work: NO
Syruse|Work: DONT
User avatar
DNoved1
Posts: 221
Joined: Wed Jan 23, 2013 5:29 pm

Re: Vanilla Minecraft Potion Logic

Post by DNoved1 »

Most likely both, as it adds a block, an item, and runs server side code. However, it should run if the server has it installed - I think.
User avatar
magikeh
Posts: 945
Joined: Mon Jul 04, 2011 9:57 pm
Location: Top -o- the Tower

Re: Vanilla Minecraft Potion Logic

Post by magikeh »

Just downloaded the server jar and started to mess around with it

Here are the results:

(Using a working client, these changes are to the server.jar)
Installed just your mod - Able to craft item, not able to take item from bench
Installed Modloader and your mod - Crash
Installed Modloader - Crash

Also i checked out how BTW is to be intalled on servers and it does not require the Modloader nor deleting the Meta-Inf folders... so there is something that needs to be added seperatly to the server to allow for your new block i am assuming. (Something that the current install does not have)
Magical Shit
Show
Syruse|Work: i like magic shit
MagikEh: ...
MagikEh: >.>
MagikEh: <.<
»» MagikEh walks to the bathroom
Syruse|Work: hahaaaaaaaaa
Syruse|Work: wait
MagikEh: xD
Syruse|Work: fuck
Syruse|Work: NO
Syruse|Work: DONT
User avatar
nmarshall23
Posts: 140
Joined: Sun May 06, 2012 1:10 pm
Location: Northern VA

Re: Vanilla Minecraft Potion Logic

Post by nmarshall23 »

DNoved1 wrote:
DNoved1 wrote:It might be possible (I'd have to look at the 1.9 pre 2 code) to actually convert cisterns back into their old counterparts, and allow brewing through them.
Well, after a few days of looking over the code, I have managed to recreate 1.9 pre 2 brewing in 1.4.7. Unfortunately, I can't replace the vanilla cistern with my own because that would require redistributing a class FC edits. Instead I simply went with creating an entirely new block which just so happens to look suspiciously like the cistern.
Very cool, some notes.
You can replace FC's cistern by, setting the current one to null.
Find the cistern in the Array of Blocks, in the Block obj. set the cistern to null.
Then add your new block using the cistern's block id.

If you need help, I will dig up code and post it.

As far as using this on a server, you can't. Servers do not use Modloader. You should be able to use it when a world has been shared via lan.

My thoughts on automation, why not steal from FC, add a spigot then make bottles placeable..

And for the love of the unholy, mix up the ingredients BTW's adds lots of very interesting items.. like, Blasting Oil and Nitre.

Although, I could see spider eyes and nether-wort as a kind of potion base..
Ulfengaard wrote:BTW by FC: Fixing vanilla, one version at a time. :)
User avatar
FlowerChild
Site Admin
Posts: 18753
Joined: Mon Jul 04, 2011 7:24 pm

Re: Vanilla Minecraft Potion Logic

Post by FlowerChild »

nmarshall23 wrote: Very cool, some notes.
You can replace FC's cistern by, setting the current one to null.
Find the cistern in the Array of Blocks, in the Block obj. set the cistern to null.
Then add your new block using the cistern's block id.
That's an extremely unsafe method of doing it that may not work at all and/or crash unexpectedly.
User avatar
DNoved1
Posts: 221
Joined: Wed Jan 23, 2013 5:29 pm

Re: Vanilla Minecraft Potion Logic

Post by DNoved1 »

Well, I just realized that FC doesn't actually edit the cistern block but rather the item, so it should be entirely possible to just override BlockCauldron.class. Complicated problem made super easy, as all I should have to do is rename the name of one of my classes and all references to it.
Post Reply