2015-01-02 8 views
3

저는 Minecraft Forge를 사용하여 Minecraft 모듈을 작성하고 있습니다.Minecraft에서 블록 항목에 대한 메타 데이터 값을 가져오고 설정하는 방법은 무엇입니까?

나는 지금은 블록을 가지고, 어떻게 메타 데이터를 찾을 수 있습니까, 그러나

Block b = world.getBlock(x,y,z); 

를 사용하여, 세계에서 블록 개체를 검색 할 수 있습니까? 블록이 StoneSteps 블록 인 경우 메타 데이터에서 보유하고있는 방향을 알고 싶습니다.

마찬가지로이 값을 어떻게 설정합니까? 새 블록을 간단하게 만들 수 있습니다.

Block b = Blocks.stone_stairs; 

다시 말해서이 블록을 특정 방향으로 설정하려면 어떻게해야합니까? ItemStack을 만들 때이 작업을 수행 할 수 있지만이 경우에는 전달할 수있는 Block 객체가 world.setBlock()이되어야합니다.

이 값을 가져오고 설정할 수있는 방법이없는 것 같습니다. 워드 프로세서에서

yourBlock.rotateBlock(World someWorld, int x, int y, int z, ForgeDirection axis); 

:

+0

미래의 시청자를 위해 : Forge 1.7 및 Forge 1.8이 현저하게 다른 경우입니다. 1.7 이하에서는'world.getBlock (int.int, int)'와'world.getBlockMetadata (int, int, int)'를 사용합니다. 그러나 1.8 미만에서는'world.getBlockState (BlockPos)'만 있습니다. '상태'는 블록 유형, 데이터 값 및 해당 타일 항목의 여러 측면을 결합한 새로운 MC1.8 객체입니다. 그런 다음 DV를 국가 밖으로 끌어냅니다. 설정하려면 블록 유형과 메타 데이터에서 새로운 블록 상태를 만든 다음'setBlockState()'와 함께 사용하십시오. –

답변

1

당신은 마인 크래프트 1.7.10을위한 마인 크래프트 1.8 world.getBlockState(BlockPos); 또는 getBlockMetadata(int x, int y, int z);를 사용할 수 있습니다.

1

당신은을 통해 블록을 회전 할 수

는 블록을 회전합니다. 바닐라 블록의 경우, 이것은 전달 된 축을 중심으로 회전합니다 (일반적으로 적중 된 "얼굴"이어야합니다). 주 : mod 블록의 경우 결정할 블록 및 modde까지입니다. 얼굴을 중심으로 회전하는 것이 의무는 아니지만 으로 향하게하거나 회전을 방문 할 수 있습니다. 회전이 성공하면 메서드는 true를 반환해야합니다.

+0

이것은 내가 필요한 대부분의 것 같습니다. 'yourBlock' 객체의 메타 데이터가 아니라 세계의 블록을 회전시키는 것으로 가정합니다. 또한 회전 할 축을 지정했지만 회전하는 거리를 지정하지 않은 것 같습니다 ... 또한이 정보는 예를 들어 도움이되지 않습니다. 모직 블록의 색상 설정 및 방향 설정 만 사용 –

+0

@SteveShipway 블록의 회전은 휘발성이며 다시로드 할 때마다 제거되지만 손상된 값은 정확하게이 문제입니다. 이 답변에서 말하는 것을 사용하고 추측을 중단하십시오. – Unihedron

+0

아마도 내가 잘못된 용어를 사용하고있는 것으로 보입니다. 얻을/설정하려고하는 값은 4 비트 피해 값 또는 데이터 값일 수 있습니다. 그러나 'world.getBlockMetadata (x, y, z)'함수가 그것을 반환하는 것처럼 보입니다. 따라서 아마도 Metadata라고 불릴 수도 있습니다. 설명서가 명확하지 않습니다 ...이 함수는 블록 오리엔테이션과 울 컬러를 리턴합니다. rotateBlock 함수는 알아 내기 매우 유용합니다. –