Jump to content

Recommended Posts

Posted

i want to know how how to change the orientation of my meta data blocks by on where i stand when placing them does anyone know how to do it here is my block file

package TheCivilizationMod;

import java.util.List;

import net.minecraft.src.Block;
import net.minecraft.src.CreativeTabs;
import net.minecraft.src.EntityLiving;
import net.minecraft.src.ItemStack;
import net.minecraft.src.Material;
import net.minecraft.src.MathHelper;
import net.minecraft.src.World;
import net.minecraftforge.common.ForgeDirection;
import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.asm.SideOnly;

public class glass extends Block{
public glass(int id, int texture){
	super(id, texture, Material.rock);
	this.setCreativeTab(CreativeTabs.tabBlock);
	this.setRequiresSelfNotify();


}
public String getTextureFile(){
	return "/Mod/MultiBlocks.png";
}

public int getBlockTextureFromSideAndMetadata(int side, int meta) {
        switch(meta) {
                case 0:
                        switch(side) {
                        case 0: return 22;
                        
                                case 1: return 22;
                                case 2: return 22;
                                case 3: return 0;
                                default: return 22;
                         }
                case 1:
                	switch(side) {
                    case 0: return 23;
                    
                            case 1: return 23;
                            case 2: return 23;
                            case 3: return 0;
                            default: return 23;
                        	 
                        
              

        }
	return side;
}

    
@Override
public int damageDropped(int meta){
	return meta;
}

@SideOnly(Side.CLIENT)
public void getSubBlocks(int par1, CreativeTabs tab, List list){
	for(int NumOfMets=0; NumOfMets<2; NumOfMets++){
		list.add(new ItemStack(par1, 1, NumOfMets));

	}
}
}

My youtube channel for forge tutorials: http://www.youtube.com/user/TheGrovesyProject101?feature=mhee

 

if i helped please press thank you

Posted

You need a TileEntity to do that.

 

Basically you have to make a simple variable like "orientation" where to store the orientation. After that you should use a ISimpleBlockRender too to change the actual block orientation depending on TileEntity data.

 

I don't know if you can find any readytouse code, you may want to check out UE wich is public in github.

Posted
  On 11/21/2012 at 6:14 AM, N1xx1 said:

You need a TileEntity to do that.

 

Basically you have to make a simple variable like "orientation" where to store the orientation. After that you should use a ISimpleBlockRender too to change the actual block orientation depending on TileEntity data.

 

I don't know if you can find any readytouse code, you may want to check out UE wich is public in github.

no sorry cant find anything that works in there

My youtube channel for forge tutorials: http://www.youtube.com/user/TheGrovesyProject101?feature=mhee

 

if i helped please press thank you

Posted

You don't need a TileEntity. In fact, that's more downsides than anything else...

 

Like DarkGuardsman said, you get the players rotation. But that's a float, and you can't use that on MetaData.

 

I have a block that can have horizontal rotation, which depends pretty much on the player's Yaw angle.

So I have this function on my Helper class:

 

public static int yaw2dir(float yaw){
	int dir = (MathHelper.floor_double((double)(yaw * 4.0F / 360.0F) + 0.5D) & 3)+3;
	if(dir > 4) dir -= 4;
	switch(dir){
		case 1: return dirZPos;
		case 2: return dirXNeg;
		case 3: return dirZNeg;
		case 4: return dirXPos;
		default: return 0;
	}
}

 

When the block is placed, I call that function with player.rotationYaw, and it returns the block's orientation (facing the player). I then proceed to set that value as the block's Metadata.

 

It is later used by my block's renderer to decide what texture to use on each face.

Did I help? Hitting 'Thank You' would be appreciated.

 

Soon, the lost city will rise from the bottom of the ocean, and spread it's technology across Minecraft.

Posted

I'm not sure... that why I have them on constants instead of directly using the value :P

They should be pretty easy to figure out though, at least they were to me...

Did I help? Hitting 'Thank You' would be appreciated.

 

Soon, the lost city will rise from the bottom of the ocean, and spread it's technology across Minecraft.

Posted
  On 11/28/2012 at 11:14 PM, thephoenixlodge said:

If you're still having problems with this, perhaps try looking at the vanilla log block code, from what I can tell, you're trying to do exactly the same thing as the vanilla log does

no the way that does it is by a single textured block with multiple side (only 1 texture) i have multiple blocks with the metadata each with a different texture.

My youtube channel for forge tutorials: http://www.youtube.com/user/TheGrovesyProject101?feature=mhee

 

if i helped please press thank you

Posted
  On 12/8/2012 at 10:28 PM, Firestarme said:

look at the vanilla furnace code, that changes the meta data of the block dependent on where the player is facing(which i think is what you are trying to achieve :) )

i have but that does it through textures but i have to do mine without having to chage the texture because its a meta data block that changes oreintation each block has a different texture

My youtube channel for forge tutorials: http://www.youtube.com/user/TheGrovesyProject101?feature=mhee

 

if i helped please press thank you

Posted

i don't think it is as complex as it seems, so i wrote out a little example below. This probably wont work straight off, but it may give you something to start on :).

 

try declaring an int for the orientation, then 6 arrays, one for each block side.

int orientation;
int side1[];
int side2[];
// etc.

 

then write out the arrays so that array[orientation] = the texture icon you want.

 

int side1[] = {1,1,1,0};
int side2[] = {1,1,0,1};
//etc.

 

then use getBlockTextureFromSide

public int getBlockTextureFromSide(int side){
switch(side){
case 1:
return side1[orientation];
break;
case 2:
return side2[orientation];
break;
//etc.
}
}

 

then use this tutorial to help you save the variable orientation so that it is not reset when the client is closed.

 

http://www.minecraftforge.net/wiki/How_to_use_NBT_Tag_Compound

 

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Same issue without voicechat?
    • Start by following the docs to get a workspace setup: https://docs.minecraftforge.net/en/latest/gettingstarted/ Then poke around some of the tutorials, https://www.mcjty.eu/docs/1.20/ used to be the goto, but not sure if there are any updates for regular forge or not, but if you've brushed up on Java, it will be enough to get you started. Poke around the Minecraft and Forge sources to see how things are done. Read the FAQ for information on how to post code/logs when you run into issues. Share as much info on issues you have as possible. Use github to host projects, chances of someone helping are higher when they can actually see all your code and/or build it themselves. And finally, keep it on the forums, don't direct message people with questions, most people do not provide personal support like that. Also keep in mind forums posts are not always immediately answered, if you're looking for a quicker response, you can always try the Minecraft Forge discord server.
    • Hello, I have a Forge Minecraft sever (I host it at g-portal.com) which has always worked fine and I had no problems, but today it doesn't wanna work anymore. Today I started the server and the status said online, but after a few seconds it said this: "Start failed". And then out of nowhere it restarted itself and the same thing happened again and again and now it's in an infinite loop where it just keeps failing and then restarts. Here's the download link for the server logs: https://www.mediafire.com/file/sq30dgoonjevib1/2025-07-06-1.log/file Does anyone know how to fix this? If yes I would really appreciate help. Best wishes, Gabs1107
    • I'm experiencing a critical issue on a dedicated Arch Linux server running the latest Forge for Minecraft 1.20.1. When a player exits a Nether portal (not enters, and not via /tp) or teleports into the End via portal, the server completely freezes for 1–10 minutes. During this time, all commands are unresponsive, and the game world essentially locks up. This is with watchdog disabled. Environment: OS: Arch Linux (latest packages) Java: OpenJDK 17 (up to date) Forge Version: Latest 1.20.1 (tested multiple versions from the past ~3 months) Mods: None (issue occurs on a clean install) Server Type: Proxmox VM with: 4 virtual cores 64 GB RAM (63 GB allocated via -Xmx and -Xms flags) Observed Behavior: Observed Behavior: The server freezes for 1–10 minutes when: Exiting a Nether portal (entering does not trigger the issue) Entering or exiting the End using a portal Teleporting using commands (e.g., /tp) works only for the Nether; teleporting to the End via command also causes a freeze The issue occurs anywhere in the world, not tied to specific coordinates or builds During the freeze: The server becomes completely unresponsive to all commands and player actions No crash reports, no errors, and no warnings are logged CPU usage remains under 50%, and RAM usage stays around 6–14 GB After 1–10 minutes, the server recovers automatically and resumes normal operation
  • Topics

×
×
  • Create New...

Important Information

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