Jump to content

Recommended Posts

Posted

I'm having a bit of trouble doing any lighting effects. Ideally I want to control the light level of a single block or even blockface already in the world, so that I can tell minecraft to make a block in position x,y,z light level 7 or 0 or 15 without effecting the blocks around it. It doesn't matter if the effects are superficial and only last for the next lighting update like a lighting bug (actually that's kind of what I prefer).

 

I tried using http://www.minecraftforge.net/forum/index.php/topic,18850.0.html but It only lights up after I log out of the world and then back in. I guess because I am only using the server and update is run on client too? I guess even if I got this working it would not allow me to set the light LOWER than it already is, but it's a start.

 

Any tips, ideas or suggested reading material? Thanks guys.

Posted

Managed to find the client with a little work. It's working like it should now.

 

Now all I have to do is pick apart and rewrite the code. I'll make a post here when I find out how to get it to light/darken a single block.

Posted

Ok I'm happy enough with what I got. In case anyone else wants to know how to do something like this you ONLY need to use the client world reference.

 

First I get the light level in the block I change so that I'm not adding a semi pertinent light.

lightSaveVarible = (int) worldObj.getBlockLightValue(x,y,z);

 

Then make the actual change.

worldObj.setLightValue(EnumSkyBlock.Block, x,y, z, LEVEL OF LIGHT (0 to 15) );
worldObj.markBlockForUpdate(x,y,z);

 

This will light up / darken that block only, but updates can cause this light to spread or this darkness to be overridden so after some amount of time. I don't mind the dark going away, but after a bit of time has past I want to make sure the light isn't spreading so:

worldObj.setLightValue(EnumSkyBlock.Block, x,y,z, lightSave);

 

I wish I cared enough to dig around in how blocks are updated and actually rewrite the rendering so I can do it right, but I don't and this is good enough.

 

Edit: oops. Should have been getBlockLightValue not getLightBrightness

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

Announcements



×
×
  • Create New...

Important Information

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