Jump to content
  • Home
  • Files
  • Docs
Status Updates
  • All Content

  • Advanced Search
  • Existing user? Sign In  

    Sign In



    • Not recommended on shared computers


    • Forgot your password?

  • Sign Up
  • All Activity
  • Home
  • SnowyEgret

SnowyEgret

Members
 View Profile  See their activity
  • Content Count

    112
  • Joined

    March 31, 2014
  • Last visited

    August 16, 2015

Community Reputation

5 Neutral

About SnowyEgret

  • Rank
    Creeper Killer

Converted

  • Gender
    Male
  • URL
    https://github.com/SnowyEgret
  • Location
    Montreal, Quebec, Canada
  • Personal Text
    Life!

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. SnowyEgret

    [1.8] [Solved] Block with ISmartModel not rendering as Item (TGG?)

    SnowyEgret replied to SnowyEgret's topic in Modder Support

    Finally, got it working. I'll submit an issue to the MBE Github repository with notes about the additional interface needed to render the block as an item. Thanks for the help, TGG.
    • August 16, 2015
    • 11 replies
  2. SnowyEgret

    [1.8] [Solved] Block with ISmartModel not rendering as Item (TGG?)

    SnowyEgret replied to SnowyEgret's topic in Modder Support

    The block in place should look the same as when in inventory, tossed, and in hand. Here are #handleBlockState and #handleItemState: This is all working fine. Each method generates the same quads. When I debug with a breakpoint in ItemModelMesher#getItemModel, stack.getItem() is still not returning an ISmartItemModel and this if statement evaluates false: if(ibakedmodel instanceof net.minecraftforge.client.model.ISmartItemModel) { ibakedmodel = ((net.minecraftforge.client.model.ISmartItemModel)ibakedmodel).handleItemState(stack); } Now that my smart model implements both ISmartModel and ISmartItemModel, what should my ModelBakeEvent handler look like? Which ModelResourceLocation should be registered? or should both be registered? public void onModelBake(ModelBakeEvent event) { event.modelRegistry.putObject(new ModelResourceLocation("mojo:block_maquette"), new BlockMaquetteSmartModel()); event.modelRegistry.putObject(new ModelResourceLocation("mojo:block_maquette", "inventory"), new BlockMaquetteSmartModel());
    • August 15, 2015
    • 11 replies
  3. SnowyEgret

    [1.8] [Solved] Block with ISmartModel not rendering as Item (TGG?)

    SnowyEgret replied to SnowyEgret's topic in Modder Support

    Ok, I understand. My smart model must implement both ISmartModel and ISmartItemModel. ISmartItemModel adds one method #handleItemState. Giving it a try...
    • August 14, 2015
    • 11 replies
  4. SnowyEgret

    [1.8] [Solved] Block with ISmartModel not rendering as Item (TGG?)

    SnowyEgret replied to SnowyEgret's topic in Modder Support

    What should the ModelResourceLocator look like? I have already registered an ISmartModel for my block with mrl=mojo:block_maquette. When I register the ISmartItemModel should the mrl be mojo:block_maquette#inventory? Also, and this is a question for TGG, MB04 seems to suggest that an ISmartItemModel is not necessary and all we have to do is the extra work during the init stage on the client side. Have I misunderstood?
    • August 14, 2015
    • 11 replies
  5. SnowyEgret

    [1.8] [RESOLVED] return blockPos of clicked spot- even if it is air

    SnowyEgret replied to DJD's topic in Modder Support

    A line from the player's eyes to the cursor will pass through many air blocks. If you could somehow get a list of all of them, then you could choose the air block at the depth you want. A non-air hit will be the first non air block encountered along the line from the player's eyes to the maximum hit depth.
    • August 14, 2015
    • 5 replies
  6. SnowyEgret

    [1.8] [Solved] Block with ISmartModel not rendering as Item (TGG?)

    SnowyEgret replied to SnowyEgret's topic in Modder Support

    Thanks Sir Ghost for getting back to me I've got a breakpoint in ItemModelMesher.getItemModel(). For reference here is the method: item is an ItemBlock as expected, but ibakedmodel is an IFlexibleBakedModel. Seems I want it to be and ISmartItemModel. In MB04 there is no mention of an ISmartItemModel, only the block's ISmartModel. What do I need to do so that this.getItemModel(item, this.getMetadata(stack)) returns an ISmartItemModel? Do I need an implementation of ISmartItemModel? If so, how do I register it in my ModelBakeEvent handler? Here is my ModelBakeEvent handler:
    • August 14, 2015
    • 11 replies
  7. SnowyEgret

    Best practice for releasing a mod

    SnowyEgret posted a topic in General Discussion

    Has anyone got advice? From someone who's been there, done that - things that I absolutely must do, things that I must never, never do? Distribution, versioning, bug tracking, logo, github, videos, Minecraft Forum, Adfly, CurseForge, beta testing, personal website, etc. (Hoping this is this the right place for a question like this)
    • August 13, 2015
    • 1 reply
  8. SnowyEgret

    [1.8] [Solved] Block with ISmartModel not rendering as Item (TGG?)

    SnowyEgret replied to SnowyEgret's topic in Modder Support

    Can someone suggest where I can put a breakpoint to debug my problem? TGG, in MBE04, you suggest overriding #getActualState but this doesn't help me. It is not being called when the item model is being rendered.
    • August 12, 2015
    • 11 replies
  9. SnowyEgret

    [1.8]Custom Rendered Block Rotation?

    SnowyEgret replied to DirtyDan_'s topic in Modder Support

    Raflex, onBlockPlacedBy is called after the block has been placed which is why DirtyDan can get his tile entity at pos. If you look at super#onBlockPlacedBy, it is an empty method. Is there another method which can be overridden to change how the block is set?
    • August 12, 2015
    • 4 replies
  10. SnowyEgret

    [1.8] [Solved] Block with ISmartModel not rendering as Item (TGG?)

    SnowyEgret posted a topic in Modder Support

    I have a block with an ISmartModel that renders fine when placed. When in inventory, tossed, or in hand, it is being rendered as a block with a texture (with its .png in the textures folder). It is my understanding that if I want my smart model to render as an item, I have to do this (#initClientOnly): https://github.com/TheGreyGhost/MinecraftByExample/blob/master/src/main/java/minecraftbyexample/mbe04_block_smartblockmodel1/StartupClientOnly.java Here is my implementation: And here is the console: As you can see, the model is being registered in init and on the client side as instructed. I am assuming the json is set up properly because it is rendering with a texture in inventory, tossed, and in hand. The ISmartModel is rendering fine when placed. Is there something I have missed? Where can I insert printlns or breakpoints to debug this?
    • August 11, 2015
    • 11 replies
  11. SnowyEgret

    [1.8] [Solved] Translate and scale a BakedQuad

    SnowyEgret replied to SnowyEgret's topic in Modder Support

    Finally Got it working like this: Please contribute any suggestions to abbreviate the code
    • August 10, 2015
    • 3 replies
  12. SnowyEgret

    [1.8] [Solved] Translate and scale a BakedQuad

    SnowyEgret replied to SnowyEgret's topic in Modder Support

    Here is what I have based on http://greyminecraftcoder.blogspot.com.au/2014/12/block-models-texturing-quads-faces.html. I've screwed something up somewhere. It's close but not quite right. translation is t and scale is s. Any advice? private BakedQuad scaleAndTranslateQuad(BakedQuad q, Vec3i t, float s) { int[] v = q.getVertexData().clone(); int x = t.getX(); int y = t.getY(); int z = t.getZ(); switch (q.getFace()) { case UP: v[0] = transform(v[0], x, s); v[7] = transform(v[7], x, s); v[14] = transform(v[14], x, s); v[21] = transform(v[21], x, s); v[1] = transform(v[1], -z, s); v[8] = transform(v[8], -z, s); v[15] = transform(v[15], -z, s); v[22] = transform(v[22], -z, s); v[2] = transform(v[2], y, s); v[9] = transform(v[9], y, s); v[16] = transform(v[16], y, s); v[23] = transform(v[23], y, s); break; case DOWN: v[0] = transform(v[0], x, s); v[7] = transform(v[7], x, s); v[14] = transform(v[14], x, s); v[21] = transform(v[21], x, s); v[1] = transform(v[1], z, s); v[8] = transform(v[8], z, s); v[15] = transform(v[15], z, s); v[22] = transform(v[22], z, s); v[2] = transform(v[2], -y, s); v[9] = transform(v[9], -y, s); v[16] = transform(v[16], -y, s); v[23] = transform(v[23], -y, s); break; case EAST: v[0] = transform(v[0], z, s); v[7] = transform(v[7], z, s); v[14] = transform(v[14], z, s); v[21] = transform(v[21], z, s); v[1] = transform(v[1], y, s); v[8] = transform(v[8], y, s); v[15] = transform(v[15], y, s); v[22] = transform(v[22], y, s); v[2] = transform(v[2], x, s); v[9] = transform(v[9], x, s); v[16] = transform(v[16], x, s); v[23] = transform(v[23], x, s); break; case WEST: v[0] = transform(v[0], z, s); v[7] = transform(v[7], z, s); v[14] = transform(v[14], z, s); v[21] = transform(v[21], z, s); v[1] = transform(v[1], y, s); v[8] = transform(v[8], y, s); v[15] = transform(v[15], y, s); v[22] = transform(v[22], y, s); v[2] = transform(v[2], -x, s); v[9] = transform(v[9], -x, s); v[16] = transform(v[16], -x, s); v[23] = transform(v[23], -x, s); break; case NORTH: v[0] = transform(v[0], -x, s); v[7] = transform(v[7], -x, s); v[14] = transform(v[14], -x, s); v[21] = transform(v[21], -x, s); v[1] = transform(v[1], y, s); v[8] = transform(v[8], y, s); v[15] = transform(v[15], y, s); v[22] = transform(v[22], y, s); v[2] = transform(v[2], -z, s); v[9] = transform(v[9], -z, s); v[16] = transform(v[16], -z, s); v[23] = transform(v[23], -z, s); break; case SOUTH: // Case where quad coordinates are aligned with world coordinates v[0] = transform(v[0], x, s); v[7] = transform(v[7], x, s); v[14] = transform(v[14], x, s); v[21] = transform(v[21], x, s); v[1] = transform(v[1], y, s); v[8] = transform(v[8], y, s); v[15] = transform(v[15], y, s); v[22] = transform(v[22], y, s); v[2] = transform(v[2], z, s); v[9] = transform(v[9], z, s); v[16] = transform(v[16], z, s); v[23] = transform(v[23], z, s); break; default: break; } return new BakedQuad(v, q.getTintIndex(), q.getFace()); } private int transform(int i, int t, float s) { float f = Float.intBitsToFloat(i); f = (f + t) * s; return Float.floatToRawIntBits(f); } Edit: A model generated from two stone bricks slabs:
    • August 10, 2015
    • 3 replies
  13. SnowyEgret

    [1.8] [Solved] Translate and scale a BakedQuad

    SnowyEgret posted a topic in Modder Support

    I am trying to create a model from another model at runtime. I need to translate and scale BakedQuads. Is there a method somewhere that does this, or do I have to manipulate the vertex data directly?
    • August 10, 2015
    • 3 replies
  14. SnowyEgret

    [SOLVED] Make block drop in creative mode

    SnowyEgret replied to SnowyEgret's topic in Modder Support

    Thanks! @Override public boolean removedByPlayer(World world, BlockPos pos, EntityPlayer player, boolean willHarvest) { if (willHarvest) { // Delay deletion of the block until after getDrops return true; } if (player.capabilities.isCreativeMode) { harvestBlock(world, player, pos, this.getDefaultState(), null); } return super.removedByPlayer(world, pos, player, willHarvest); }
    • August 4, 2015
    • 9 replies
      • 1
      • Like
  15. SnowyEgret

    [SOLVED] Make block drop in creative mode

    SnowyEgret replied to SnowyEgret's topic in Modder Support

    My mod is on GitHub, repository is mo-jo. The Block is named BlockSaved. Please have a look if you are interested. But this is really a generic problem. How do you make a block, any block, drop in creative?
    • August 4, 2015
    • 9 replies
  • All Activity
  • Home
  • SnowyEgret
  • Theme

Copyright © 2019 ForgeDevelopment LLC · Ads by Longitude Ads LLC Powered by Invision Community