Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[UNSOLVED]Strange things happen with my energysystem[1.8]


ItsAMysteriousYT
 Share

Recommended Posts

  • Replies 99
  • Created
  • Last Reply

Top Posters In This Topic

Okay - now there is some other strange stuff. I can connect the blocks bugfree now, but for example i connect my Pinwheel to the transformer. In the pinwheel i set the energy to 440 every tick. My TileENtity_Electric automaticly passes over the enrgy to the connected block like this:

 

public void passOverVoltage(){
	if(getTo()!=null){
		getTo().onPowered(this.getVoltageValueAfterPowering());
		System.out.println("Tried passing voltage to"+getTo().getClass().getSimpleName()+" Voltage is:"+getVoltage());
	}
}

 

BUT - when i hover over the transformer in minecraft, on the guioverlay the voltage still is 0.0, while in code with System.out.println it is 440. How can i fix that?

Link to comment
Share on other sites

Also - for example my lantern does not turn on immediatly when getting powered, but often i have to reopen the world so it is lit up. Thats how i set the lightlevel of the block:

 

  @Override
    public void update(){
    	super.update();
    	if(worldObj.isRemote)return;
    	if(this.getVoltage()>0){
    		isActive=true;
    	}else
    		isActive=false;
    	
    	if(isActive){
    		worldObj.getBlockState(getPos()).getBlock().setLightLevel(100.0f);
    	}else
    	{
    		worldObj.getBlockState(getPos()).getBlock().setLightLevel(0);
    	}
    	
    }
    
@Override
public void onPowered(float f) {
	super.onPowered(f);
	this.isActive=true;
	worldObj.getBlockState(getPos()).getBlock().setLightLevel(10.0f);
	worldObj.markBlockForUpdate(getPos());
}

Link to comment
Share on other sites

You can just use the variables in your TileEntity, it exists on the client, too.

 

okayyyy...But what excactly am i sending in that packet then? Do i send the whole tileentity? If yes, how?

Also this method still does not work

    public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) {
    	super.onBlockPlacedBy(worldIn, pos, state, placer, stack);
    	 TileEntity tileentity = worldIn.getTileEntity(pos);
         if (tileentity instanceof TileEntity_Electric){
        	 TileEntity_Electrictile = (TileEntity_Electric)tileentity;
        	 tile.rotation = MathHelper.floor_double((double)(placer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;

         }
    }

Link to comment
Share on other sites

You can just use the variables in your TileEntity, it exists on the client, too.

 

okayyyy...But what excactly am i sending in that packet then? Do i send the whole tileentity? If yes, how?

 

This will probably help. Also, as diesieben said, you can send whatever you need to know on the client side. So if you want the amount of energy in the gui(I think that's what you want) you send the amount in the packet to the client.

I'm back from being gone for... I think its been about a year. I'm pretty sure nobody remembers me, but hello anybody who does!

Link to comment
Share on other sites

    @Override
    public void update(){
    	super.update();
    	if(worldObj.isRemote)return;
    	if(this.getVoltage()>0){
    		isActive=true;
    	}else
    		isActive=false;
    	
    	if(isActive){
    		worldObj.getBlockState(getPos()).getBlock().setLightLevel(10.0f);
    	}else
    	{
    		worldObj.getBlockState(getPos()).getBlock().setLightLevel(0);
    	}
    	
    }
    
@Override
public void onPowered(float f) {
	super.onPowered(f);
	this.isActive=true;
	worldObj.markBlockForUpdate(getPos());
}

 

I tried marking for update in the update method and the game crashed :/

Link to comment
Share on other sites

I call it in the superclass like this:

 

public void passOverVoltage(){
	if(getTo()!=null){
		getTo().onPowered(this.getVoltageValueAfterPowering());
		System.out.println("Tried passing voltage to"+getTo().getClass().getSimpleName()+" Voltage is:"+getVoltage());
	}
}

 

and this method is called within the update() method:

if(getTo()!=null){
    		this.passOverVoltage();
    		this.voltage=0;
	    	if(storedPos!=null&&worldObj.getTileEntity(storedPos)==null||!(worldObj.getTileEntity(storedPos)instanceof TileEntity_Electric)){
	    		to=null;
	    		storedPos=null;
	    	}
    	}

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share




×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.