Jump to content

LordMastodon

Forge Modder
  • Posts

    173
  • Joined

  • Last visited

Everything posted by LordMastodon

  1. But it's annoying when you have to check for a new version every day... What do you mean?
  2. I suppose that could be annoying for something like bug-fix updates, but it could be useful for major updates. For instance, if someone is doing a YouTube playthrough of a mod, and while they're playing a massive feature comes out such as Thermal Expansion integration or something like that. They're also playing with Thermal Expansion, and it's annoying that the two mods don't integrate. You start to see where something like that might be useful. Using that system, you could probably make a "version syntax" like 1.0.0, where the third number is minor bug-fix updates, the second number is major block-adding updates and the first number is a major mod overhaul. You could do a system that notifies the player about whether the update is bug-fix, major or overhaul, and a config system that lets them configure what version notifications they want to see. However, I am all ears to what you mean by "coded stupidly" and what could be done to make that different. I'd also be grateful if you could share with me how I could make a script that downloads that file from the internet, and how I could use Jenkins to do Continuous Integration, that would be greatly appreciated as I've not used something like that as of yet.
  3. Ahh. Well then I shall give you the same advice everyone like you gets. Go learn Java and THEN come back. If you don't know what "initalization" means then you've never coded in your life and should go do that.
  4. I don't even like the TheDiamondMinecart. I think he's stupid and rode to fame on a wave of asshat 10 year olds. The fact that skydaz is part of him just makes me repulsed from it even more. I've never once used Skydaz and don't intend upon doing so. If you need an installer to do any of the things listed on that website you should get off the internet and grab a creeper plushie because you're 7 years old.
  5. That's awesome. That license sounds great, and so do all those tips. A link to that site is being inserted in my signature.
  6. That's what I keep telling everyone, but they don't listen! I also tell people not to use skydaz, but that might just be me.
  7. So I know there are mods that on startup check the internet for an updated version of the mod, and if they find one they tell the player. So basically I was wondering how they did that. I found this thing called Jenkins which lets you do internet stuff with Java plugins, but I'm not quite sure how that works either, and I don't know if that's what's being used... Thanks in advance!
  8. Odd. Try initializing it at declaration.
  9. How about something like: GameRegistry.addRecipe(new ItemStack(MItems.obRod, 4), "O", "O", 'O', Blocks.obsidian); That seemed to work exactly the same as sticks for me.
  10. 'Cause you made Rgrass#field_149994_N private...
  11. First off you misspelled "Height" in your schematic reader. Other than that I'm not in a position to answer, seeing as I don't know anything about worldgen, just thought I'd point that out as that might be related.
  12. Perhaps you should try to export it from Blender with flipped YZ axes...
  13. So I'm now using this: this.setBlockBounds(0.315F, 0.005F, 0.315F, 0.685F, 0.125F, 0.685F); Which seems like abhorrent practice to me, due to the exact nature of the numbers, but whatever. That yields this: But the bounds look sort of glitchy. Side note: the minY is 0.005F instead of 0.0 because if I left it as 0.0 the bottom would disappear under the ground. EDIT 1 Switching to Block#setBlockBoundsBasedOnState worked fine, but the bounds still looks sort of odd.
  14. If I do this: if(!inLitUpMode) { world.setBlockState(pos, state.withProperty(LIT_UP, true)); this.setBlockBounds(0.0F, 0.0F, 0.0F, 16.0F, 16.0F, 16.0F); } else { world.setBlockState(pos, state.withProperty(LIT_UP, false)); this.setBlockBounds(5.0F, 0.0F, 5.0F, 11.0F, 2.0F, 11.0F); } Than the small block's bounds are the size of a normal block and the full block's bounds are hugely massive. Any idea how that's supposed to work?
  15. Perhaps try looking at how the grass block works...
  16. Watch Pahimar's video tutorial on YouTube about Keybindings, that should help.
  17. So I've got this code: @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { inLitUpMode = (Boolean) state.getValue(LIT_UP); if(!inLitUpMode) { this.setLightLevel(1.0F); world.setBlockState(pos, state.withProperty(LIT_UP, true)); } else { this.setLightLevel(0.0F); world.setBlockState(pos, state.withProperty(LIT_UP, false)); } } return true; } Which works perfectly fine as far as switching the IBlockState, but this.setLightLevel doesn't seem to be doing anything. The model changes, the texture changes, the F3 blockstate display changes, but it doesn't start emitting any light. I really don't want to switch to a two-block system like the furnace because this already works perfectly well, but if you know of any bug with changing the light level like that or something like that, please help. Thanks in advance!
  18. Thanks, that worked!
  19. So I'm clicking the Run Client button in Eclipse, and I get this error every single time: Variable references empty selection: ${project_loc} which is incredibly annoying. Any clue what to do? EDIT 1 Never mind, it seems to have randomly and magically fixed itself...
  20. Ok thanks! That seemed to work. I was considering using something like that, but I wasn't sure whether that was how meta actually worked.
  21. Hello, I've created a block that utilizes IBlockState to iterate between models/textures and a different type of block on right-click, but the blockstates file is using a PropertyBool. Without overriding the Block#getStateFromMeta and Block#getMetaFromState the launcher returns an error, but I'm not quite sure how to override those methods with a PropertyBool. I don't want to make two different blocks, because that would just be annoying, but I'm getting stuck on those methods. Here's my class: package lordmastodon.miscal.blocks; import java.util.Random; import lordmastodon.miscal.block.MiscalBlocks; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class LightationBlock extends Block { public static final PropertyBool LIGHTED_UP = PropertyBool.create("lighted"); public LightationBlock() { super(Material.iron); this.setDefaultState(this.blockState.getBaseState().withProperty(LIGHTED_UP, false)); } public Item getItemDropped(IBlockState state, Random rand, int fortune) { return Item.getItemFromBlock(MiscalBlocks.lightation); } public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { boolean lightedUp = (Boolean) state.getValue(LIGHTED_UP); if (lightedUp == true) { lightedUp = false; this.setLightLevel(1.0F); } else { lightedUp = true; this.setLightLevel(0.0F); } world.setBlockState(pos, state.withProperty(LIGHTED_UP, lightedUp)); } return true; } public IBlockState getStateFromMeta(int meta) { EnumFacing enumFacing = EnumFacing.getFront(meta); if (enumFacing.getAxis() == EnumFacing.Axis.Y) { enumFacing = EnumFacing.NORTH; } return this.getDefaultState().withProperty(LIGHTED_UP, enumFacing); } public int getMetaFromState(IBlockState state) { return ((EnumFacing) state.getValue(LIGHTED_UP)).getIndex(); } @SideOnly(Side.CLIENT) public IBlockState getStateForEntityRender(IBlockState state) { return this.getDefaultState().withProperty(LIGHTED_UP, false); } protected BlockState createBlockState() { return new BlockState(this, new IProperty[] {LIGHTED_UP}); } @Override public int getRenderType() { return 3; } @Override public boolean isOpaqueCube() { return false; } @SideOnly(Side.CLIENT) @Override public EnumWorldBlockLayer getBlockLayer() { return EnumWorldBlockLayer.CUTOUT_MIPPED; } @Override public boolean isFullCube() { return false; } } Any help? Thanks in advance!
  22. Thanks, I guess I'll just use SourceTree in conjunction with Eclipse. I don't really want to have to switch over to Intellij now, although that does have built-in VCS. I know Intellij is the better IDE, and I did try to use it initially, but it turned out I had to alter the build.gradle file just to use my assets, and even when I did that it did not work. So far, SourceTree looks pretty good, and I think I'll just go with that. I'll probably look over the tutorial for a later mod that's not so far into development, but thanks anyway!
  23. Ok, does anyone know anything about using EGit? I've looked at the documentation and it's hopelessly outdated. I've looked at third-party tutorials and they also seem hopelessly outdated. It's also the only Eclipse plugin that actually lets you use Git right from Eclipse , and seems to be endorsed by both GitHub and Eclipse. I know that in Intellij it comes sort of standard, but *grumble* Forge endorsing Eclipse *grumble*. So does anyone actually know how to use the updated version with the project structure of a mod project? I figured I'd ask here because I doubt many people on a forum such as Stack Overflow would know how Forge modding works, despite probably knowing EGit. Thanks in advance, although I don't anticipate many replies.
×
×
  • Create New...

Important Information

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