Jump to content

LexManos

Forge Code God
  • Posts

    9270
  • Joined

  • Last visited

  • Days Won

    68

Posts posted by LexManos

  1. s/probably/DEFINITLY/

    Static field access vs a map lookup everytime you're accessing the value? That's a DEFINITE performance increase.

    Beyond that, for your own stuff it should be simple as hell to use @ObjectHolder

    @ObjectHolder("my_mod")
    	public class MyBlocks {
    	  public static final name1 = null;
    	  public static final name2 = null;
    	  public static final name3 = null;
    	  public static final name4 = null;
    	}

  2. Forge Version: 1.12.1-14.22.1.2478

    Minecraft Version: 1.12.1

    Downloads:

     

    With 1.12.2 on the horizon, I figure its about time for a RB. We've done a few bug fixes, performance improvements, etc. We're still working on flushing out Mojang's JSON data system. But this is being held up by modder's not wanting to say what they need. So my hopes is that people will start testing out the changes and working with us to move the data system forward.

     

    I want to take this moment to re-iterate that we are proposing a new standard for the community in reguards to CoreMods. This standard has been agreed upon by most of the major players in the Minecraft community. You can read more in the announcement. These are proposed for technical reasons so that hopefully in the future we can start moving the engine/game forward.

     

    Minecraft Forge 14.22.1 Changelog:

    ============================================================================

    New:

    • Added @ObjectHolder scanning to vanilla MobEffects, Biomes, Enchantments, SoundEvents, and PotionTypes constants.
    • Optimized ExtendedBlockState.getClean() speeding up block updates.
    • Added rotation origin variable for animated models
    • Added partialTick to RenderLivingEvent
    • Improved Furnace fuel functionality and performance.
    • Added spawner flag to CheckSpawn event.
    • Added logging snitcher when using System.out/err
    • Quieted down warning for missing translation files.
    • Added support for custom FontRenderer for tooltips in Creative GUI
    • Added support for NBT icons in Advancements
    • Removed unnecessary maxStackSize restrictions on brewing potions.
    • Optimized some patches for performance/cleanliness.
    • Now firing RemapEvent when reverting to Frozen state.
    • New Recipe Registry events after JSON recipes are loaded.
    • Added support for vanilla "nbt strings" in json recipes
    • Added logging for coremods that do not package separate Jars. 
    • Made Optional.Interface repeatable
    • Added support for custom Shields and Shield disabling weapons.
    • Added limiting to Server to Client capability packets.
    • Added support for oredict dyes to Fireworks, Armors, and Shulker recipes.
    • Added support for placing buttons and levers on modded blocks.
    • Sneaking will now bypass villager interactions like other entities.
    • Added pages to the advancements GUI to allow for unlimited root advancements.
    • Added CriticalHitEvent to allow more control over whether a attack is a critical or not, and what damage it does.
    • Cleaned up Forge config files.
    • Increased performance of ticking tile entities.
    • Added GuiContainer Foreground render event.
    • Add smarter getter for block slipperiness

     

    Bug Fix:

    • Fix BiomeDictionary not collecting it's list correctly.
    • Fixed incorrect default resource location of potion registry
    • Fixed missing messages of missing models
    • Fixed unblockable damage being blocked by armor.
    • Fixed log spam when creating dummy blocks.
    • Fixed override duplication caused by bad comparison.
    • Fixed getting missing models for overridden Item registry entries
    • Fixed JOpt version on the dedicated server not matching client.
    • Fixed packet encoding issues.
    • Fixed Recipe Toast crash when granted more than 5000 recipes
    • Fixed MC-68754, Screen is not resizeable after exiting fullscreen due to LWJGL bug
    • Fixed crashes related to the RecipeBook and unknown Recipes.
    • Fixed EnumHelper for CreatureTypes
    • Fixed game freeze when resizing the window too small on the mods gui
    • Fixed "Binary patch set is missing" error in dev environment
    • Fixed issue where rendered held items wouldn't properly update when the reequip animations isnt shown.
    • Fixed invalid erroring case during loading Advancements form mods that don't have advancements.
    • Fixed tripwire statemap not being complete when mappings change.
    • Fixed crops dropping incorrect items with fortune.
    • Fixed server not handling item usage when client cancels it.
    • Fixed death loop due to zero max health (MC-119183)
    • Fixed FML handshake race condition
    • Fixed overrides not being applied over the network.
    • Fixed swapping of finite fluids with negative densities.
    • Fixed the firing location of InputEvent.MouseInputEvent
    • Fixed Armor bar disappear after changing dimension. MC-88179
    • Fixed bug where config categories errored if they contained regex special characters.
    • Fixed issue where client comparators WOULD sync with server. {Vanilla bug we had to re-introduce because of vanilla mechanics =.=}
    • Fixed vanilla server icon.
    • Fixed stacked entity item rendering using the wrong transform for the extra items.
    • Fixed Boats rubber banding when dismounted. MC-119811

     

    • Like 4
  3. What is with the rash of people posting screenshots of their launcher? All of which contain nothing to do with the issue.

    Post your fml log from the logs folder.

    Not getting the hashes is normal, Mojang doesn't follow maven standards and we've opted out to that so its intentional for them to get these 'errors' but the game will still work.

    • Like 1
  4. If you have the same code on both client and server, why would they make 'different choices'? Code is code, it doesn't think it just does exactly what you tell it to do.

    But yes the idea is to move all of your major logic to the server and make the client a 'dumb client'. This just makes good design sense because it lowers the complexity of the client. Thus lowering potential desync/processing/error issues.

    But it does introduce lag, and this is why some logic is good on the client. If the client can predict what the server is going to do then it can start doing that before the server has told it to. Or better yet the server can be less accurate in the information it sends to the client and the client can interpolate between the data. For example entity movement. Instead of sending one packet per tick per entity to every client. The server can send "this entity is moving this direction" when the movement starts and a "the entity is now at x,y,z" every, 20 ticks. That's instantly 1/20th of the bandwidth/processing time used.

     

    It's a balance between end user experience and performance. And there are many schools of thought onto which side is more important.

     

    As for Vanilla code, Vanilla code is horrible. Its all client side because the client and server were written separately for the bulk of the early development. The dumb-client approach wasn't even thought about until about MC 1.3, and there is so much code debut that you can't really get out of it. So we work with what we have.

     

     

×
×
  • Create New...

Important Information

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