Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature request] 3d space #8

Closed
lublak opened this issue Mar 15, 2021 · 5 comments
Closed

[feature request] 3d space #8

lublak opened this issue Mar 15, 2021 · 5 comments
Labels
enhancement New feature or request

Comments

@lublak
Copy link
Contributor

lublak commented Mar 15, 2021

Allow the circuit to go up.

  • allow pistons to push blocks upwards
  • allow dust on blocks
  • allow blocks on blocks
  • allow blocks over torches
  • allow redstone signal
  • allow an output of the redstone signal upwards
  • etc...

Currently, most logic can be implemented in 1-height circuits.
I think, especially for performance and maintainability, it will be rather impossible.

a simpler idea would be the two feature requests:
#10
#9

@dannydjdk dannydjdk added enhancement New feature or request low priority labels Mar 15, 2021
@dannydjdk
Copy link
Owner

I have mixed feelings about this not only due to the significant increase is programmatic complexity, but also that it may make things more confusing for players. The alternatives you mention are definitely more likely to be implemented. On the other hand, one of my main aims with this mod was to behave as close to vanilla redstone as possible. If you know how to build something in vanilla redstone, I want you to be able to apply that same knowledge to Tiny Redstone.

One of the reasons I made the torches directional and to work independently as NOT gates was to account for the 2d-ness of the panel.

One possible thought is to just allow a second layer to put redstone on blocks and blocks over torches, but with the logic required for that, it might not be a big stretch to just allow arbitrary height (up to 7 within the block space).

I'll revisit this idea once I have the main 2d functionality where I want it.

@lublak
Copy link
Contributor Author

lublak commented Mar 15, 2021

Year ... It is like a double-edged sword.
I also assume that most circuits will be built in 2d anyway.
Currently, I do not know which circuit could not be built in 2d.
True, it was an idea. But whether it makes sense I don't really know.

@Fireztonez
Copy link

I understand your idea to try keeping Tiny Redstone as closed as possible to Vanilla redsone.
But I can see several cases where it is impossible or really complicated to make a compact redstone circuit without 3d space or at least colored redstone. For sure a big 3d circuit is a lot harder to work on than a simple 2d circuit, but in somes cases you can have to make more complex circuit question to being able to do what you want.

In any case, think about it and I will follow the updates of your mod carefully!

@lublak lublak changed the title [feature quest] 3d space [feature request] 3d space Mar 25, 2021
dannydjdk referenced this issue Apr 25, 2021
-Components can now be placed in 3 dimensions up to 4 levels high.
-Redstone behavior does not interact between levels
-Cell position now supports x,y,z coordinates
-Tiny components are now included in the panel's voxel shape
-When calculating position from raytrace results, it now determines if the vector is pointing at a component (from any side).
-You now interact with the actual components rather than the panel base when clicking.
-Components now place against other components when clicking on them.

-IPanelCell interface has 2 new methods:
 hasActivation - returns whether the component responds to right clicks
 getShape() - returns a PanelCellVoxelShape object describing the shape of the component.

 Known issues:
 -One Probe now showing correct information when looking at side of panel.
 -Some visual issues with translucent blocks.
 -Bottoms of components do not render.
dannydjdk added a commit that referenced this issue Apr 28, 2021
-Tiny Redstone Dust signals now step up and down tiny blocks.
-Tiny Redstone dust renders on side of block if another redstone dust exists that it can connect to.
-Tiny Redstone Dust signals can travel up tiny glass blocks, but not down to match vanilla glass behavior.
-Tiny Redstone Dust on different levels is "cut off" by tiny solid blocks
-All of the above for the Tiny Redstone Bridge.
-Tiny Redstone Torches now deactivate on signal from bottom.
-Tiny Redstone Torches now output strong signal above.
-Allow vertical placement of Tiny Observers.
-Added bottom texture for Tiny Observers.
-Fixed many bugs related to orientations and facings and the translations thereof.
-Added support for rendering 3d levels in item.
-Made redstone dust voxel a bit smaller for more accurate clicking.

Known issues:
-Response to redstone signals above and below panel are not finalized and are currently inconsistent.
-A few tiny components, especially those that can not be placed vertically, have no bottom texture.
-All components can float in 3d space including Tiny Redstone Dust, Repeaters and Torches.
-Tiny Buttons and Levers can only be oriented on the bottom of a cell for backward compatibility.
-Placement can be frustrating, because most components have an activation on right click, so it's necessary to sneak when placing many components. And, facing pistons downward is quite difficult.
-Thinking too much about orientations and facings and the translations thereof can cause a brain crash.
@dannydjdk
Copy link
Owner

dannydjdk commented Apr 28, 2021

Issues to resolve:

  • Response to redstone signals above and below panel are not finalized and are currently inconsistent. Some decisions need to be made here.
  • A few tiny components, especially those that can not be placed vertically, have no bottom texture.
  • All components can float in 3d space including Tiny Redstone Dust, Repeaters and Torches.
  • Placement can be frustrating, because most components have an activation on right click, so it's necessary to sneak when placing many components. And, facing pistons downward is quite difficult. We may need some kind of placement "mode" that prevents activation when trying to place components on top of other components.
  • Covers should be full block size. Otherwise, it appears that the cover removes all the upper components.
  • One Probe not getting all info when looking at the side of a component, possibly because the segment isn't being calculated.
  • One Probe not giving any useful info when looking at the side of the panel.
  • Tiny Buttons and Levers can only be oriented on the bottom of a cell for backward compatibility.
  • Thinking too much about orientations and facings and the translations thereof can cause a brain crash.

dannydjdk added a commit that referenced this issue Apr 29, 2021
-Added Tiny Color Selector tool item to right-click IColorablePanelCell cells and select colors.
-Removed color selector on right click of tiny blocks when not using the Tiny Color Selector. This makes placement of components on/against other components much easier.
-Removed some redundant null checks in block activation code.
dannydjdk added a commit that referenced this issue Apr 30, 2021
…#50)

-Add method to IPanelCell boolean needsSolidbase() with default return true.
-Restrict placement and preview of components which return needsSolidBase() true to redstone panel surface or surface of tiny solid blocks (such as those that can be pushed by pistons).
-Automatically remove components needing solid base from panel if the base block is removed, moved or is no longer solid such as a piston switching to extended state.
-Rendering bottoms of Tiny Redstone Blocks, Lamps and Transparent Blocks. All blocks that do not need a base are rendering all 6 sides.
dannydjdk added a commit that referenced this issue May 1, 2021
-Increased total levels to 7.
-Allowing redstone input/output through top of block. For now, preventing input/output through base.
-All components on the edge now input/output with blocks in world.
-Added support for rotation of components on all levels.
-Consolidated some code relating to finding edge cells.
@dannydjdk
Copy link
Owner

Closing this issue. 3d is now live and functional. A couple minor issues remain and have been given issues of their own: #60, #59.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants