Skip to content

Commit

Permalink
Grab default meta when meta exceeds allowed values for meta blocks (#621
Browse files Browse the repository at this point in the history
)

- Prevents world corrupting crash
  • Loading branch information
Rongmario authored Feb 21, 2022
1 parent 8177076 commit e7f9f08
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 8 deletions.
9 changes: 5 additions & 4 deletions src/main/java/gregtech/common/blocks/BlockCompressed.java
Original file line number Diff line number Diff line change
Expand Up @@ -78,14 +78,15 @@ public int getHarvestLevel(IBlockState state) {
@Override
@SuppressWarnings("deprecation")
public IBlockState getStateFromMeta(int meta) {
Material material = variantProperty.getAllowedValues().get(meta);
return getDefaultState().withProperty(variantProperty, material);
if (meta >= variantProperty.getAllowedValues().size()) {
meta = 0;
}
return getDefaultState().withProperty(variantProperty, variantProperty.getAllowedValues().get(meta));
}

@Override
public int getMetaFromState(IBlockState state) {
Material material = state.getValue(variantProperty);
return variantProperty.getAllowedValues().indexOf(material);
return variantProperty.getAllowedValues().indexOf(state.getValue(variantProperty));
}

@Override
Expand Down
9 changes: 5 additions & 4 deletions src/main/java/gregtech/common/blocks/BlockFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,15 @@ public int damageDropped(@Nonnull IBlockState state) {
@Override
@SuppressWarnings("deprecation")
public IBlockState getStateFromMeta(int meta) {
Material material = variantProperty.getAllowedValues().get(meta);
return getDefaultState().withProperty(variantProperty, material);
if (meta >= variantProperty.getAllowedValues().size()) {
meta = 0;
}
return getDefaultState().withProperty(variantProperty, variantProperty.getAllowedValues().get(meta));
}

@Override
public int getMetaFromState(IBlockState state) {
Material material = state.getValue(variantProperty);
return variantProperty.getAllowedValues().indexOf(material);
return variantProperty.getAllowedValues().indexOf(state.getValue(variantProperty));
}

@Override
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/gregtech/common/blocks/BlockOre.java
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,9 @@ public int getHarvestLevel(IBlockState state) {
@Override
@SuppressWarnings("deprecation")
public IBlockState getStateFromMeta(int meta) {
if (meta >= STONE_TYPE.getAllowedValues().size()) {
meta = 0;
}
return getDefaultState().withProperty(STONE_TYPE, STONE_TYPE.getAllowedValues().get(meta));
}

Expand Down

0 comments on commit e7f9f08

Please sign in to comment.