Jump to content

Redstone Help


AF777
 Share

Recommended Posts

So I want to make a block emit light when a redstone signal is applied to it. I know how to make it emit light but I don't know how to make it detect the redstone signal.

 

	myFirstBlock = new BlockFirst(538,0);
	myFirstBlock.setLightValue(1F);
	LanguageRegistry.addName(myFirstBlock, "My first block");
	MinecraftForge.setBlockHarvestLevel(myFirstBlock,"pickaxe",0);
	GameRegistry.registerBlock(myFirstBlock);

 

That's the piece of code that creates the block. This is written just after the '@Init' in the Base Mod file. I have defined myFirstBlock after the '@SidedProxy' further up in the code.

 

The block creation works fine.

 

Could I please just get some help with the redstone signal detection?

 

 

 

Thanks

Link to comment
Share on other sites

I suggest you have a look at vanilla redstone lamps.

 

Pretty much this.

You'll need two blocks for it to work, as how much light a block emits doesn't update based on state (or rather, it's very very difficult to get it to do so).

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

frankly, Mojang is rather lazy when it comes to metadata use.
And they are perfectly fine to do so.

Mods "abuse" metadata to save on block ids, but thats not what metadata is intended for. Mojang is the creator of the game after all, so they don't have to worry about stuff like running out of block ids.

Link to comment
Share on other sites

And they are perfectly fine to do so.

Mods "abuse" metadata to save on block ids, but thats not what metadata is intended for. Mojang is the creator of the game after all, so they don't have to worry about stuff like running out of block ids.

What is it intended for? Also, they would have to (eventually) worry about running out of IDs - the limit is a technical one (the limit of a byte), so it is not like they could change it (without severe consequences for world file size and performance) if they ever ran to 255 blocks.

Link to comment
Share on other sites

What is it intended for?

Stuff like wool or wheat. Data that doesn't change the block but somehow is necessary for it. (Repeaters are another example. They store their delay and orientation in metadata). Sure, one could argue that the on-state of a lamp is a just additional data, too. But in the vanilla code light level only depends on block id. The hooks that allow for metadata or even TileEntity based light value are changes made by forge. So mojang took the "cheap" way of just using 2 block ids instead of refactoring a lot of code (I'm not sure how bad the changes forge makes in this department are for performance or if there is even a difference, but that might be a reason too).
Also, they would have to (eventually) worry about running out of IDs - the limit is a technical one (the limit of a byte), so it is not like they could change it (without severe consequences for world file size and performance) if they ever ran to 255 blocks.

Well, that's true for sure, but the limit is not a byte but a actually 1.5 bytes (1 byte + 1 nibble) leading to 4096 block ids. Yes, vanilla more or less has that since the introduction of the Anvil format. And a lot of time has to pass before vanilla minecraft exceeds 4096 block ids.

And even if they do run out of those 4096 block ids they are free to change it to 2 full bytes whenever they want to. Its their game after all.

Link to comment
Share on other sites

You can do it with metadata no problem actually.

I second this. Just because MC uses multiple IDs for something does not mean that is the only way to do it; frankly, Mojang is rather lazy when it comes to metadata use.

 

The problem was not that "can you make multiple states without using more block IDs" but rather getting the light illumination level based on metadata.

 

Doable, but it wasn't strait forward.

 

See this thread for a working example.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

it would be in the blocks package in minecraft source code

 

I hope you realise that seems a really dumb and noobish question... I am pretty sure you are not a noob

I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes.

 

I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there xD

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.