Code Monkey home page Code Monkey logo

tiny-redstone's Issues

[bug] optifine lightning

Yes, I know. Optifine is evil.
Currently, the light output does not work with optifine.
I think it is a wontfix.
I'll still see if I can find something about it and if so I'll try to fix it myself. But it's unlikely, as I have no idea about either optifine or forge.
But maybe I'll find something anyway.
grafik

[Enhancement] allow each cell/cover accept a right click with a item

Currently it is complete hardcoded.

That is okay:

https://github.com/dannydjdk/Tiny-Redstone/blob/master/src/main/java/com/dannyandson/tinyredstone/blocks/PanelBlock.java#L357
https://github.com/dannydjdk/Tiny-Redstone/blob/master/src/main/java/com/dannyandson/tinyredstone/blocks/PanelBlock.java#L360

But it would be nice to have a method on each cell and cover thats accept a right click item.

  1. for plugins this would be very advantageous
  2. camouflage blocks could be a thing

[bug] game closed

I made it :P i try to recreate it, my test world cannot be opened.
Currently I have no idea how, but it had something to do with pistons and 2 panels.

---- Minecraft Crash Report ----
// Surprise! Haha. Well, this is awkward.

Time: 20.03.21 18:08
Description: Ticking block entity

java.lang.NullPointerException: Ticking block entity
	at com.dannyandson.tinyredstone.blocks.PanelTile.getNeighborTileCellIndex(PanelTile.java:804) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at com.dannyandson.tinyredstone.blocks.PanelTile.updateNeighborTileCell(PanelTile.java:797) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at com.dannyandson.tinyredstone.blocks.PanelTile.updateNeighbor(PanelTile.java:655) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at com.dannyandson.tinyredstone.blocks.PanelTile.updateNeighborCells(PanelTile.java:631) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at com.dannyandson.tinyredstone.blocks.PanelTile.updateNeighborCells(PanelTile.java:624) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at com.dannyandson.tinyredstone.blocks.PanelTile.updatePiston(PanelTile.java:412) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at com.dannyandson.tinyredstone.blocks.PanelTile.func_73660_a(PanelTile.java:318) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at net.minecraft.world.World.func_217391_K(World.java:1279) ~[?:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:performant.mixins.json:world.WorldMixin,pl:mixin:A}
	at net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:371) ~[?:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:performant.mixins.json:world.ServerWorldBlockUpdateMixin,pl:mixin:APP:abnormals_core.mixins.json:ServerWorldMixin,pl:mixin:APP:endergetic.mixins.json:ServerWorldMixin,pl:mixin:APP:quark.mixins.json:ServerWorldMixin,pl:mixin:APP:charm.mixins.json:ServerWorldMixin,pl:mixin:APP:charm.mixins.json:accessor.ServerWorldAccessor,pl:mixin:APP:performant.mixins.json:world.ServerWorldMixin,pl:mixin:APP:performant.mixins.json:entity.MobServerWorldMixin,pl:mixin:A}
	at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:851) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:structure_gel.mixins.json:MinecraftServerMixin,pl:mixin:APP:charm.mixins.json:accessor.MinecraftServerAccessor,pl:mixin:APP:byg.mixins.json:server.MixinMinecraftServer,pl:mixin:A}
	at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:787) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:structure_gel.mixins.json:MinecraftServerMixin,pl:mixin:APP:charm.mixins.json:accessor.MinecraftServerAccessor,pl:mixin:APP:byg.mixins.json:server.MixinMinecraftServer,pl:mixin:A}
	at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:118) ~[?:?] {re:mixin,re:classloading,xf:OptiFine:default,pl:mixin:APP:smoothboot.mixins.json:client.IntegratedServerMixin,pl:mixin:A}
	at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:642) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:structure_gel.mixins.json:MinecraftServerMixin,pl:mixin:APP:charm.mixins.json:accessor.MinecraftServerAccessor,pl:mixin:APP:byg.mixins.json:server.MixinMinecraftServer,pl:mixin:A}
	at net.minecraft.server.MinecraftServer.lambda$startServer$0(MinecraftServer.java:232) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:structure_gel.mixins.json:MinecraftServerMixin,pl:mixin:APP:charm.mixins.json:accessor.MinecraftServerAccessor,pl:mixin:APP:byg.mixins.json:server.MixinMinecraftServer,pl:mixin:A}
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242] {}


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Server thread
Stacktrace:
	at com.dannyandson.tinyredstone.blocks.PanelTile.getNeighborTileCellIndex(PanelTile.java:804) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at com.dannyandson.tinyredstone.blocks.PanelTile.updateNeighborTileCell(PanelTile.java:797) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at com.dannyandson.tinyredstone.blocks.PanelTile.updateNeighbor(PanelTile.java:655) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at com.dannyandson.tinyredstone.blocks.PanelTile.updateNeighborCells(PanelTile.java:631) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at com.dannyandson.tinyredstone.blocks.PanelTile.updateNeighborCells(PanelTile.java:624) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at com.dannyandson.tinyredstone.blocks.PanelTile.updatePiston(PanelTile.java:412) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
	at com.dannyandson.tinyredstone.blocks.PanelTile.func_73660_a(PanelTile.java:318) ~[tinyredstone:1.16.5-1.5.0b] {re:classloading}
-- Block entity being ticked --
Details:
	Name: tinyredstone:redstone_panel // com.dannyandson.tinyredstone.blocks.PanelTile
	Block: Block{tinyredstone:redstone_panel}[facing=down]
	Block location: World: (-81,71,28), Chunk: (at 15,4,12 in -6,1; contains blocks -96,0,16 to -81,255,31), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
	Block: Block{tinyredstone:redstone_panel}[facing=down]
	Block location: World: (-81,71,28), Chunk: (at 15,4,12 in -6,1; contains blocks -96,0,16 to -81,255,31), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
Stacktrace:
	at net.minecraft.world.World.func_217391_K(World.java:1279) ~[?:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:performant.mixins.json:world.WorldMixin,pl:mixin:A}
	at net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:371) ~[?:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:performant.mixins.json:world.ServerWorldBlockUpdateMixin,pl:mixin:APP:abnormals_core.mixins.json:ServerWorldMixin,pl:mixin:APP:endergetic.mixins.json:ServerWorldMixin,pl:mixin:APP:quark.mixins.json:ServerWorldMixin,pl:mixin:APP:charm.mixins.json:ServerWorldMixin,pl:mixin:APP:charm.mixins.json:accessor.ServerWorldAccessor,pl:mixin:APP:performant.mixins.json:world.ServerWorldMixin,pl:mixin:APP:performant.mixins.json:entity.MobServerWorldMixin,pl:mixin:A}

[Enhancement] Panel Free Placement

Right clicking a tiny component in the world where there is no existing Redstone Panel block would place that tiny component in the world.

  • Technically, an invisible Redstone Panel tile entity would automatically be placed in that block space allowing for placement of components in a full 8x8x8 area.
  • Removing the last component will remove the tile entity.
  • The block will always be horizontal facing (technically downward), but can input/output redstone in all 6 directions.
  • Breaking the block with a pickaxe or by shift-right clicking with a wrench will drop a single block containing all the components within that block space (somewhat similar to C&B).
  • Right clicking a blueprint in the world could place the circuit in world.
  • Redstone Panels could still be used when desired and for placement in other orientations.

[feature request] redstone hole and redstone rod.

This idea, or rather the components, is not really vanilla.
The redstone hole allows the signal to be taken or sent from under the panel.
The redstone rod allows the signal to be taken or sent above the panel.

[bug] piston over two panels

I just noticed. Whether this is really a bug ... I doubt it myself.
(i like the feature that you can expand your redstone panels ๐Ÿ‘ )

But I noticed it anyway :)

If you place two panels it looks like this

grafik

if i remove the second panel
grafik

=============

if i place only one panel:

grafik

after placing a second panel:
grafik

Tiny Common Logic Components

You asked me to put this here from the curseforge comment section.
If/when you make an add-on perhaps you can consider adding components besides (n)and, (n)or and x(n)or, like:

  • counters (set amount, increase/decrease on signal and reset on side)
  • timer/pulse-generator (in ticks/seconds/minutes)
  • sr-latch (and/or toggle-latch)
  • raising/falling edge detectors
  • on/off delays (again in ticks/seconds/minutes)

Again, thank you for this mod, it saves me loads of space and I love designing circuits with it.

[dev] The One Probe Override doesn't override redstone output

The One Probe is now showing component redstone outputs based on the side of the component being viewed. However, if the side of the component also corresponds to a side of the panel that is outputting redstone, The One Probe is displaying that redstone output too.

2021-05-05_20 16 14

How do we tell The One Probe not to display the panel's redstone output when we're looking at a component?

Any idea @lublak?

[enhancement] better redstone dust placement

I will try to implement it myself and make a pull request.
You can do it too, of course, but I like to help a bit, if I can, and not just throw my ideas in here.

blue: player position (the player position is only important if only one connection is available)
black: cell
red (in black): a possible connection point, repeater, other redstone line (only if the side is enabled), block?, comparator, etc.
red (in white): the new redstone dust to be placed with the connections

@dannydjdk what do you think of that?

So basically:

If only one connection exists in the adjacent fields:

Connect one connection and then, depending on the player orientation, the other.

Otherwise:

Connect only all available connections.

grafik

[bug] export -> Camera freezes

If you export to a json file the camera gets freezed. I can move my char but i can't rotate the camera.
Cancel works fine.
After right clicking again and press cancel it works again.

Button and lever 3d placement

Allow placement of buttons and levers on the side of tiny blocks.

Theoretically, there could be 24 different possible orientations: 4 facing directions on 6 faces.

This may require special handling of previous saves and blueprints for backward compatibility.

[Feature Request] Circuits on circuits

Bit like in super circuit maker.
Place a circuit board (potentially just some built in circuits like rs latch) onto a circuit board to increase compactness

[bug] colored panel placing

When removing a colored panel and placing it, the panel loses its color.
atfer placing a component it gets its color back.
It is enough if you somehow interact with the panel.
grafik
grafik
grafik

[Enhancement] Copying Vanilla Redstone In World to a Blueprint

This idea is inspired by a comment on my YouTube spotlight video for this mod. Shrechuum suggested implementing something like AE's spatial storage, where redstone blocks in the world can be converted to a tiny redstone circuit.

What I would like to do is add a feature that allows you to copy a vanilla redstone circuit in the world to a blueprint which you can then use to create a circuit using the existing blueprint system. Using some mechanism to scan an 8x8x7(?) area in the world. All blocks within that area which correspond to tiny redstone components would be copied to a blueprint. Perhaps any unknown blocks would be set to tiny solid blocks.

I expect that this would be a very involved project that will take a considerable amount of development time, so I'm setting it to low priority for now.

[Feature request] 3d Redstone circuits

I think having possibility to make redstone circuit with multiple layer can be nice and will add a lot of possibility for more complexe circuit in a compact way.

So what I imagine is:

  • Having possibility Tiny Plate, where you can place 1 Tiny redstone each.
  • Having possibility to bring Redstone Signal from one layer to the other with a sort of redstone cable vertical (Similar to the Redstone Impregnated Sticks from SCM)
  • Like in Minecraft circuit, Tiny Redstone Torch should be hable to transmit Redstone signal on the second layer.
  • In addition you can possibly add a none conductive version of the plate.

If you want to see visually an example of what you can do:
https://youtu.be/09hFVLKlBo4?t=468

You probably don't need to go with the same level of complexity than SCM let you make, but I think it can give you somes ideas for improvements.

And, if you need, codes sources of SCM have been delivered, so if this can help you in certain way, question to improved your mod, without necessarely copying the codes:
https://github.com/amadornes/SCM-Legacy

[bug] Redstone doesn't propagate across panels reliably

First off... I love this mod. As an engineer, I'm drawn to technical Minecraft, but I'm not a fan of large bulky circuits. RedPower (and later Project Red) was my favorite mod because it allowed me to create super compact circuits and focus on functionality rather than puzzling out how to make something work within vanilla redstone oddities. Tiny-Redstone once again allows me to create extremely compact circuits while still managing to stay true to vanilla. Kudos on an excellent mod!

I noticed that redstone signals don't always propagate reliably across adjacent panels. I created a simple circuit shown below to illustrate the issue:

2021-05-05_09 48 02

With these three parallel lines, each operates fine individually. However, if I first turn on the right one followed by the middle one, the middle one doesn't propagate past the first panel:

2021-05-05_09 50 19

Likewise, the left line also doesn't propagate.

2021-05-05_09 52 56

However, if I turn off the left circuit again, the middle one updates properly.

2021-05-05_09 53 54

Adding repeaters to the panel edge helps somewhat, but the propagation is still unreliable. In the example below, the middle circuit "blocks" the falling edge of the right circuit from propagating (sometimes):

2021-05-05_10 02 56

As I mentioned, sometimes the above circuit works, and sometimes it doesn't. It seems a little random. There are a lot of other permutations, but I think you get the idea.

If I place repeaters on both panels (one launching and one receiving), then it seems to work reliably.

For this test, I'm using Tiny Redstone 1.16.5-1.7.0 with Forge 36.1.0.

I hope this helps.
Dave

[feature request] preview your placement

Each of the tiny redstone components should show a preview of where you will place it. (transparent ghost block)

Already on your to-do list, similar (highlight the grid)

[feature request] 3d space

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

[suggestion] common gates - blueprints and components

honestly this is a great mod, and the only things I could even remotely suggest is make both small version and large version logic gates, and to make the covers dyeable for easy identification. both would create a highly optimized experience and would be source for Mojang to emulate in a future patch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.