SlimeVoid / LittleBlocks-FML

LittleBlocks for FML
http://www.slimevoid.net/LittleBlocks
GNU Lesser General Public License v3.0
18 stars 13 forks source link

LB chunk will not allow you to destroy a Solid block Directly behind it #32

Closed Tarig0 closed 11 years ago

Tarig0 commented 11 years ago

simple if there is no LB block in the chunk between you and a regular block you can't destroy it

Eurymachus commented 11 years ago

This is by design. Solution is to destroy the empty LB chunk.

Tarig0 commented 11 years ago

what if there is something in that chunk.

Say I am building a adding machine and find I didn't place it correctly and I just need to git rid of the block behind it. IF it is by design I would like this to be changed or at least be an option. Why is it by design?

Eurymachus commented 11 years ago

Again this is by design. You wouldn't be able to place anything within the chunk otherwise ;) think about it .......

Tarig0 commented 11 years ago

wouldn't this only effect the left click not the right(place) click. that is if you can detect that it is on the border. I can see issues where you send a packet to the LB world then have to destroy a block in the overworld. hmm I think I might have a way to do it, my bad GUI hack might have a use

If I can get it so you can left click while still being able to place blocks on a wall would you be willing to take it

ah yes activate the the block behind it. if you look at issue #28 can we have it when the user has nothing in hand you can activate the block behind the LB chunk.

On Wed, May 15, 2013 at 9:45 AM, Greg Jones notifications@github.comwrote:

Again this is by design. You wouldn't be able to place anything within the chunk otherwise ;) think about it .......

— Reply to this email directly or view it on GitHubhttps://github.com/SlimeVoid/LittleBlocks-FML/issues/32#issuecomment-17939135 .

Eurymachus commented 11 years ago

Too many ifs and what ifs. The solution is not to place a little chunk in front of something you need to access.

Start making special cases and you make the system non-dynamic

You need to be able to right click without anything in your hand to activate the relevant blocks inside the little chunk.

Unfortunately the bounds of the little chunk correspond to that of a full block in order to work correctly. Imagine it like glass, might be see trough but you can't acces somethin on the other side.

Tarig0 commented 11 years ago

This would only effect if the selected little coordinated is on the border of the LB chunk. this shouldn't effect the contents of the chunk. At this point I won't push anything until I can find a solution that will allow for interaction behind the LB chunk and is dynamic enough for your taste

did some testing and you can activate the block behind an LB chunk (furnace), just can't destroy so only have to handle left click sudo code

user left clicks

if(selected little cord on border) // no need to check held item

start hitting the block behind face of LB chunk. (feed the neibhor cordnates into the function name that called this)

else send packet to LB world.

note to self don't mail in these comments

ali4z commented 11 years ago

May not understand the issue at hand. But to me it seems like something ray tracing and some basic world routing would solve. Ray enters LB world, routed into LB world, ray never hits anything in LB world, routed back out of LB world, ray continues until something is hit or max hit distance is reached.

I am assuming a ray trace is already implemented. Just need to sort the routing. If you're to use the glass analogy; think of it as a light beam entering your glass.

It might not be by design. But the issue seems a bit critical, so maybe it should be. And if the original design is half decent; it should be able to adapt. If not; then you might want to think about making it adaptable. Because designs and systems adapt and change over time, like living organisms. The ones that can't usually die.

Tarig0 commented 11 years ago

the problem is that ray trace is used to allow you to place a block half way up on the regular solid block when it borders an LB chunk.

This goes away when you have this setup lb = lb chunk A= air s= solid ns = nonsolid [lb] [A] [S]

or

[lb][ns]

hence the reason why I think the

[lb][S] setup should act as is you clicked directly on the regular block, in the left click code

ali4z commented 11 years ago

"the problem is that ray trace is used to allow you to place a block half way up on the regular solid block when it borders an LB chunk." Isn't that how it's supposed to work?

"This goes away when you have this setup [lb] [A] [S]" But then it would be (or one would assume it should be) colliding with the solid block in the air or nonsolid normal world block (not a LB chunk)

Or do you mean it always thinks the block behind it is solid ? Again, that is when routing the ray through the worlds would help. Like how a ray of light would break when it hits the glass. Instead of breaking in this case, it would be a re-routing between worlds.

Or do you mean it doesnt do anything if the block behind is non-solid? Same solution would fix that.

I agree though. if you have a [lb][S] and click through all non solid in the LB chunk, it should hit the solid regular block. For placing on that face would mean you place in the LB chunk, activate or breaking means you activate or break the regular block (because the ray would not collide with anything in the LB)

I am confused at how this would be a problem or not seem logical. It is exactly how everything else works in minecraft. Placing blocks over chunk borders, etc. The difference is the business code, that you need to route the ray trace in and out.

PS: I am butting in on this because I am getting soooo many emails from this. Figure it out already! >_> Haha.

Eurymachus commented 11 years ago

If you were able to destroy a solid block behind a littlechunk, you wouldnt be able to remove the littlechunk.

This is a non issue.