TeamDmfMM / StarvationAhoy

Starvation Ahoy's Official Repository
4 stars 1 forks source link

1.9 testing #29

Closed kotoroshinoto closed 8 years ago

kotoroshinoto commented 8 years ago

If I want to try out this mod on 1.9 is the 1.9 branch merged into regular master, or should I work off the other branch?

Are there any other build dependencies or is it good to go as is?

dmf444 commented 8 years ago

If you want to use 1.9, work on the master1.9 branch. Currently master is 1.7.10/1.8 ( I can't remember which one). No dependencies are required.

kotoroshinoto commented 8 years ago

do you have a list of known broken things in the 1.9 branch? I am a programmer myself, so if I have time I might be able to take a look at the source. I noticed your last commit message seemed to indicate something was broken lol

dmf444 commented 8 years ago

Current known bugs: 1) Dirty Item Renderer broken (being fixed this weekend, hopefully)

2) The Spitroast does not place the cooking blocks and some, so there is no cooking meat ATM.

That's about it

kotoroshinoto commented 8 years ago

might it not make more sense to do skinned carcass + stick = uncooked-animal-roast, and have that be the item you place on the spit stands rather than an empty stick that you apply a carcass to afterward?

dmf444 commented 8 years ago

I'd prefer to not make different levels of items that don't do anything.

kotoroshinoto commented 8 years ago

makes sense I suppose. could just be a different damage value and slightly different render (with a stick) on the same item class. Ultimately if it works this way it won't matter.

What will we be expected to place below the 2 block space? will you add an open campfire type item, (to throw wood or coal or charcoal in) or will we have to use netherrack?

kotoroshinoto commented 8 years ago

You mentioned it not placing the cooking blocks so I assume that is what you were referring to, I only played with this in 1.7 &or1.8 for a very short time due to a crash I encountered at the time, so I don't QUITE recall how it worked XD

kotoroshinoto commented 8 years ago

I assume dmfmm.StarvationAhoy.Meat.Block.tileentity.HoldingStickTileEntity.checkCookerStructure is the function that constructs the cooker object within the world?

are the cooking coals / roasting fire blocks coded but simply not added to the construction process or are they missing entirely at the moment?

I'm starting to get a handle on the flow this function takes, but i'm not entirely sure of which objects need to be created for this thing to become properly functional.

kotoroshinoto commented 8 years ago

If i'm understanding it correctly, something between lines 79 - 85 and 87 - 93 is not working properly for 1.9, so the cooking fire doesn't end up existing.

kotoroshinoto commented 8 years ago

or perhaps it is the MultiBlockChecking.crtn_a function that isn't working properly for those positions.

I take it bpos1 and bpos2 are the 2 lower blocks?

kotoroshinoto commented 8 years ago

Perhaps I don't understand Minecraft or Forge's base code well enough to know whats going wrong, but it seems like what the code is trying to do is set the cooker's default state and THEN get the tile entity at that position from the world class and set it to be the new cooker multiblock object after casting that tile entity to be either a holding stick or a cooker.

It is not immediately obvious to me which function actually tells minecraft to include the blocks within the multiblock structure or to create the tile entities that the getTileEntity function is returning here, or which objects the crtn_a function is setting a state on.if the blocks haven't actually been added at that location as tile entities yet.

Given that the holding stick isn't accepting skinned corpses, perhaps it isn't creating the holding stick tile entities either, or is that determined by interacting with the fire block itself?

Perhaps given what i'm seeing in game, the world is rejecting these tile-entity blocks when you try to implicitly create them, or the perhaps you are relying on functions that did something implicity in 1.8.9 that they no longer do in 1.9 (perhaps they expect you do do something explicitly instead).

At what point in the code are the cooker blocks supposed to be inserted into the world? Is it when you call getTileEntity and set teh multiblock structure member to the cooker multiblock? If so... then what does the MBlockLoader.Cooker.getDefaultState act on given that the blocks don't exist yet when you called crtn_a?

If the getTileEntity function is supposed to create a placeholder if used on a position that doesn't have a tile entity in it, then perhaps it is improperly destroying the block somehow?

kotoroshinoto commented 8 years ago

If the player tries to walk through the cooker multiblock the getBoundingBox function in the cooker class has a nullpointer error. It apparently fails to get the tile-entity that is supposed to exist within the multi block structure, so it is indeed failing to place the tile entities there.

kotoroshinoto commented 8 years ago

http://pastebin.com/SVz84C4c

kotoroshinoto commented 8 years ago

I notice that when I break one of the support sticks after constructing the multi-block, it seems to leave an invisible tile entity in the other location despite not rendering it (as if the block was broken and the tile left behind).

I then tried to build another cooker structure using one of the same pillar locations, but the 2nd support stick was in a different location from before, and the client crashed. http://pastebin.com/Kr9jDF1z

kotoroshinoto commented 8 years ago

I put in some System.out prints to see if the various assignments actually took, and they did. In fact I even sometimes hear a "fire" sound for a second or two after creating the multiblock, so I'm at a loss, hopefully my input triggers an idea for you.

dmf444 commented 8 years ago

Completed a 1.9 release