Just a quick note, TS might not be updated quickly, because:
* I've just started university
* I didn't use a version control system, so I can't roll back my code to the last released version and update that. I have to get everything I'm working on to work fully before I can release it - mostly things related to block ID conservation.
For anyone who didn't know, Jeb messed up the 4096 block IDs. Not only are there still only 256 IDs that don't crash the game, but it's now impossible, AFAIK, to write a 4096-ID mod for 1.2. (late edit: that's only true for non-modloader mods that add items, which is almost none of them)
I've added a poll, please vote so I can decide my priorities for the 1.2 update. (Changing the block/meta assignment system might break compatibility which is why that's there). HD texture support is also simple if there's no block ID combining.
Just a quick note, TS might not be updated quickly, because:
* I've just started university
* I didn't use a version control system, so I can't roll back my code to the last released version and update that. I have to get everything I'm working on to work fully before I can release it - mostly things related to block ID conservation.
For anyone who didn't know, Jeb messed up the 4096 block IDs. Not only are there still only 256 IDs that don't crash the game, but it's now impossible, AFAIK, to write a 4096-ID mod for 1.2.
I've added a poll, please vote so I can decide my priorities for the 1.2 update. (Changing the block/meta assignment system might break compatibility which is why that's there). HD texture support is also simple if there's no block ID combining.
Nothing in this post is set in stone. Feel free to cast your opinions.
Although two people voted that they need the block IDs, the next release (which will be for both 1.2.3 and 1.1) will probably drop this. If you only have one mod, you won't need any extra IDs - TubeStuff would still only use one ID, as would any other mods I may release here (unless it was absolutely necessary), but they won't be able to use the same ID as each other. 1.0.6 could do this (again ignoring the fact that TS was the only mod using it), but it only worked for blocks that didn't need any custom rendering or material, and all the textures had to be in a single texture file in one of the mods, limiting its usefulness.
1.1 (which I released to only one other person) could combine textures from different files into a single one at runtime, but this caused it to be incompatible with HD textures as the dimensions were hardcoded. (You could still use an HD texture pack for vanilla and other mod textures, just not TS)
This means it's no longer necessary to configure meta values, and allowing users to do so would make it harder to share maps, assign IDs and connect to SMP servers as well as being pointless for the majority of users (ie all who downloaded the mod after the update).
The default IDs should be X:0 for the buffer and X:1 for the ACT2, where X was the first free ID starting at 255 and going down. There was no reason to change those meta values yet, so I assume most people haven't, and will use those in the next release.
Also the 4096 ID situaton is not as bad as I thought before. mDiyo says he has a patch to Forge that fixes the crashes. If it was accepted into Forge (which it might be by now) it would probably bypass the problem of compatibility, as Forge mods would be forced to support it. Or it might be fixed in a 1.2.4 bugfix release, if we're lucky.
I'm also now on my 2nd attempt of restructuring things so I can easily build multiple versions of mods.
My first attempt was to have a separate Eclipse project for every setup - 1.1 client with BC2, 1.1 client with BC3, 1.1 server with BC2..... That worked, but the problem with that was the exponential number of projects and having to have a separate class for every combination of dependencies (imagine BC2Methods, BC2ClientMethods, BC2OnePointOneMethods, BC2OnePointOneClientMethods... except it would really be 2 versions of BCProxy, 4 versions of BCNonSharedProxy, 8 versions of BCNonSharedMCVersionProxy, 4 versions of BCMCVersionProxy. Fortunately, I only had a few of these, but still enough to be annoying).
My second attempt is to use Ant, so each configuration is just an extra Ant target, and Prebop to literally comment out the inapplicable parts of each configuration before the code gets compiled.
If you want a 1.2.3 version (or even a later version of the 1.1 version) here are my new not-very-tested builds. Note that you need to download two files now - Immibis Core and TubeStuff. This works like any other Core mod such as BC Core, RP Core or CodeChicken Core.
Also the buffer is now a CC peripheral, as I've said before, but it was compiled against the 1.3RC1/1.3.0 CC API. I have no idea if the API's changed in 1.3.1... I'm also not sure how useful the API is.
Lua wrapper for the peripheral API
function openBuffer(side)
local m = peripheral.wrap(side)
m.setOverride(true)
local function wrap(f)
return function(...)
local ok, r = f(...)
if not ok then error(r) end
return r
end
end
m.getItemID = wrap(m.getItemID)
m.getDamage = wrap(m.getDamage)
m.getQuantity = wrap(m.getQuantity)
m.moveItems = wrap(m.moveItems)
local old_emitStack = m.emitStack
m.emitStack = function(slot)
while true do
ok, id = old_emitStack(slot)
if not ok then
if id ~= "busy" then
error(id)
else
sleep(0.5)
end
else
while true do
local evt, p1 = os.pullEvent()
if evt == "immibis.tubestuff.buffer.emitStackDone" and p1 == id then
return
end
end
end
end
end
return m
end
Example use:
local m = openBuffer("back")
m.setOverride(true)
while true do
sleep(0.5)
for k=0,17 do
if m.getItemID(k) == 1 then
m.emitStack(k)
end
end
end
Information:
slot numbers go from 0 to 17
m.getItemID(slot number) -> Item ID in slot
m.getDamage(slot number) -> Damage value of item in slot
m.getQuantity(slot number) -> Number of items in slot
m.moveItems(source slot, destination slot, count) -> moves items from one slot to another. Is this even useful?
m.emitStack(slot number) -> attempts to emit the stack in the given slot into a pipe or tube system. Can block until done. Requires override mode to be on.
m.setOverride(true/false) -> If true, no items will be emitted except with emitStack.
immibis core for 1.2.3 returns the following error:
java.lang.UnsupportedClassVersionError: mod_ImmibisCore : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at ModLoader.addMod(ModLoader.java:288)
at ModLoader.readFromModFolder(ModLoader.java:1283)
at ModLoader.init(ModLoader.java:886)
at ModLoader.addAllRenderers(ModLoader.java:186)
at aho.<init>(aho.java:79)
at aho.<clinit>(aho.java:9)
at net.minecraft.client.Minecraft.a(Minecraft.java:395)
at net.minecraft.client.Minecraft.run(Minecraft.java:732)
at java.lang.Thread.run(Unknown Source)
immibis core for 1.2.3 returns the following error:
java.lang.UnsupportedClassVersionError: mod_ImmibisCore : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at ModLoader.addMod(ModLoader.java:288)
at ModLoader.readFromModFolder(ModLoader.java:1283)
at ModLoader.init(ModLoader.java:886)
at ModLoader.addAllRenderers(ModLoader.java:186)
at aho.<init>(aho.java:79)
at aho.<clinit>(aho.java:9)
at net.minecraft.client.Minecraft.a(Minecraft.java:395)
at net.minecraft.client.Minecraft.run(Minecraft.java:732)
at java.lang.Thread.run(Unknown Source)
That was because I compiled it with Java 7. I've changed it to use Java 6 for compiling from now on - try redownloading it.
Just to check, both .jars (core and TS) go into the .minecraft/mods/ folder right?
EDIT: Removing the TS .jar gives the same error that @thephoenixlodge had.
Yes they do.
You shouldn't be still getting that error since it should be compiling with Java 6 - I'll have to wait until I get home to investigate more.
No clue about guis because still getting the "java.lang.UnsupportedClassVersionError: mod_ImmibisCore : Unsupported major.minor version 51.0" error for note... Just downloaded it again.
Java 6 and startup crash: Fixed, apparently people weren't getting the right file from the download page for some reason, even though it worked fine for me.
Recipes producing broken item stacks: Fixed.
Version numbers in filenames: added.
And a new, less serious problem: my current compile/reobfuscate/upload/generate download list program lists all previous versions on the download page, which will quickly get annoying (There are already 3 for TubeStuff, and two of them are broken).
My custom texture does not seem to work for your automatic crafting table. It seems I have to replace your texture with mine. Rather then placing the texture in the texture pack.
EDIT: nvm, if you change the texture in game, the automatic crafting table won't have a texture anymore. A simlpe restart fixes that.
Oh snap, that autocrafting table will save me a lot of space in my smp autocrafting line. Redpower retrievers will work well with that. Unfortunately, it doesn't solve the other major problem I have, which is crafting components of an item so I can get a little bit closer to logistics pipes in smp. Blargh. Oh well, this mod will definitely help me a lot with compactness, previously my setup needed a chest buffer and redstone engines into a bc autocrafting table.
* I've just started university
* I didn't use a version control system, so I can't roll back my code to the last released version and update that. I have to get everything I'm working on to work fully before I can release it - mostly things related to block ID conservation.
For anyone who didn't know, Jeb messed up the 4096 block IDs. Not only are there still only 256 IDs that don't crash the game,
but it's now impossible, AFAIK, to write a 4096-ID mod for 1.2.(late edit: that's only true for non-modloader mods that add items, which is almost none of them)
I've added a poll, please vote so I can decide my priorities for the 1.2 update. (Changing the block/meta assignment system might break compatibility which is why that's there). HD texture support is also simple if there's no block ID combining.
Where is the option to fire jebs!
Check out my Let's Play Series:
Although two people voted that they need the block IDs, the next release (which will be for both 1.2.3 and 1.1) will probably drop this. If you only have one mod, you won't need any extra IDs - TubeStuff would still only use one ID, as would any other mods I may release here (unless it was absolutely necessary), but they won't be able to use the same ID as each other. 1.0.6 could do this (again ignoring the fact that TS was the only mod using it), but it only worked for blocks that didn't need any custom rendering or material, and all the textures had to be in a single texture file in one of the mods, limiting its usefulness.
1.1 (which I released to only one other person) could combine textures from different files into a single one at runtime, but this caused it to be incompatible with HD textures as the dimensions were hardcoded. (You could still use an HD texture pack for vanilla and other mod textures, just not TS)
This means it's no longer necessary to configure meta values, and allowing users to do so would make it harder to share maps, assign IDs and connect to SMP servers as well as being pointless for the majority of users (ie all who downloaded the mod after the update).
The default IDs should be X:0 for the buffer and X:1 for the ACT2, where X was the first free ID starting at 255 and going down. There was no reason to change those meta values yet, so I assume most people haven't, and will use those in the next release.
Also the 4096 ID situaton is not as bad as I thought before. mDiyo says he has a patch to Forge that fixes the crashes. If it was accepted into Forge (which it might be by now) it would probably bypass the problem of compatibility, as Forge mods would be forced to support it. Or it might be fixed in a 1.2.4 bugfix release, if we're lucky.
I'm also now on my 2nd attempt of restructuring things so I can easily build multiple versions of mods.
My first attempt was to have a separate Eclipse project for every setup - 1.1 client with BC2, 1.1 client with BC3, 1.1 server with BC2..... That worked, but the problem with that was the exponential number of projects and having to have a separate class for every combination of dependencies (imagine BC2Methods, BC2ClientMethods, BC2OnePointOneMethods, BC2OnePointOneClientMethods... except it would really be 2 versions of BCProxy, 4 versions of BCNonSharedProxy, 8 versions of BCNonSharedMCVersionProxy, 4 versions of BCMCVersionProxy. Fortunately, I only had a few of these, but still enough to be annoying).
My second attempt is to use Ant, so each configuration is just an extra Ant target, and Prebop to literally comment out the inapplicable parts of each configuration before the code gets compiled.
Also the buffer is now a CC peripheral, as I've said before, but it was compiled against the 1.3RC1/1.3.0 CC API. I have no idea if the API's changed in 1.3.1... I'm also not sure how useful the API is.
Lua wrapper for the peripheral API
Example use:
Information:
java.lang.UnsupportedClassVersionError: mod_ImmibisCore : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at ModLoader.addMod(ModLoader.java:288)
at ModLoader.readFromModFolder(ModLoader.java:1283)
at ModLoader.init(ModLoader.java:886)
at ModLoader.addAllRenderers(ModLoader.java:186)
at aho.<init>(aho.java:79)
at aho.<clinit>(aho.java:9)
at net.minecraft.client.Minecraft.a(Minecraft.java:395)
at net.minecraft.client.Minecraft.run(Minecraft.java:732)
at java.lang.Thread.run(Unknown Source)
That was because I compiled it with Java 7. I've changed it to use Java 6 for compiling from now on - try redownloading it.
Yes they do.
You shouldn't be still getting that error since it should be compiling with Java 6 - I'll have to wait until I get home to investigate more.
Did you compile the mod is jdk6 yet? I seen you said you did, but It appears you haven't yet.
I set
in my Ant build file, as the documentation says I should, but Ant seems to be ignoring it...
I'll try something else when I get home today (setting JAVA_HOME to point at jdk6)
Recipes producing broken item stacks: Fixed.
Version numbers in filenames: added.
And a new, less serious problem: my current compile/reobfuscate/upload/generate download list program lists all previous versions on the download page, which will quickly get annoying (There are already 3 for TubeStuff, and two of them are broken).
EDIT: nvm, if you change the texture in game, the automatic crafting table won't have a texture anymore. A simlpe restart fixes that.
Do not complain about how the black hole chest on Fancy looks like the
void chests and eldritch monuments (spoiler) in Thaumcraft 2.
I mean arrows shot out of a Infinity Bow.