So, having more or less completed the basic functions of the Transposer, I wanted to build something to demonstrate its potential.
I present a fully automated cactus farm:
So I did up some art for the Transposer:
This is the last block for the basic set for RP Machines. I still have to make it work, and clean up a bunch of things in the tube code, but it’s looking like RP Machines is going to be coming out in whatever version gets RP 2.0.
So Minecraft 1.9 is in pre-release and 1.10 is already announced. And this is before I even have RedPower for 1.8.1.
I don’t know what to do. What version am I supposed to be updating for now?
I’m more than a little tempted to just take a couple weeks off RedPower development to focus on Minia, at least until things settle down again.
EDIT: For the time being, I’ve decided to give up any hope or pretense of releasing a pre-RP2 RedPower version and instead concentrate on the new features in RP 2. Most of those aren’t tied tightly to Minecraft, so I can just keep working on them in my 1.8.1 development environment. I’ll port and release when I get the feature list finished.
So there’s this one new function in the source. The MCP name for it is EntityPlayer.func_35190_e. It’s new in 1.8. It does nothing - it returns true.
So why is it interesting?
Well, it’s now called by dye (including bonemeal), hoes, seeds, block items, and flint&steel;, before the item use function fires.
Because it’s a function of the player, the only thing it manages to accomplish is killing any non-player attempts to use those items, by throwing a NPE. And yes, that means it completely and utterly cripples the Deployer.
Nothing is ever easy.
(And yes, I fixed it. 7 new classes touched by Forge. Yowch. Still, I’m not the only one using those functions.)
I just went back and added tags and categories to all the posts on the blog. Hopefully that makes things a little easier to navigate. I’ll keep fixing little things here and there as time allows.
I just posted this description on the forum, so I figured I’d mirror it here for easier lookup. Someone suggested I name it the “Transposer”, and I think I will.
The current design of the transposer does the following:
Items that bump against the input side are sent to the output side.
Items that enter the input side through a tube are sent to the output side.
Items sent to the output side will be:
added to a tube at full speed.
inserted into an inventory
ejected onto the ground.
When it receives power, it will:
Withdraw an item from an inventory on the input side and send it to the output side.
Suck up items in a radius of the input side and send it to the output side.
I don’t have any sprites or code for it yet, so that’s all.
So besides working on the lighting code, today I drew most of the rest of the sprites for RP World.
Here we go:
Left to right: tin, silver, copper, brass, nikolite, blue alloy.
So I’ve been doing some playtesting in RedPower World.
I spawned under an overhang, and it appears that the marble cave populator saw it as a valid target. The overhang was almost solid marble!
So the first thing I did was make a little hut out of marble bricks:
Marble is slightly softer than smooth stone, so this was actually a pretty sensible thing to do, considering the abundance of marble in this world.
And then I noticed that I spawned quite near to a volcano:
I nipped over there and got myself some basalt cobblestone. I also explored a nearby cave, and found a bunch of ore. Iron, copper, and tin! Shame I can’t do anything with the copper or tin yet. Oh well, that just gives me a reason to continue working.
So I’ve been studying the 1.8.1 lighting code. In some ways, it’s not as big a change as I’d been afraid of, but it’s still going to take me a few hours to work through.
The overview is basically this: - The glColor channels on blocks are now baked ambient occlusion. That doesn’t change when the lighting conditions change, so that actually makes some sense. - A second texture unit is initialized and used for all lighting information. The texture used is 2 dimensional, with one coordinate being the sky occlusion, and the other being local lights. Since sky occlusion doesn’t change when the sun rises or sets, this allows the instant sunrise/sunset that 1.8.1 brings. It also allows tinting various lights at various times of day.
The good news: - The RedPower rendering code isn’t a total loss. The same design can work, but I have to make a bunch of changes. - I think the new lighting code is pretty cool.
The bad news: - While not a total loss, the RedPower renderer does need a lot of work. It’ll probably be hours before I can get a good fix for this. - This makes it much, much harder to ever add RGB lighting.