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
  • shadowmage4513
The update for 1.13 is being worked on - please be patient. (Updated 02/19/19)

shadowmage4513

Forge Modder
 View Profile  See their activity
  • Content count

    157
  • Joined

    August 13, 2012
  • Last visited

    December 15, 2014
  • Days Won

    1

shadowmage4513 last won the day on January 16

shadowmage4513 had the most liked content!

Community Reputation

43 Excellent

About shadowmage4513

  • Rank
    Creeper Killer

Converted

  • Gender
    Male
  • URL
    http://ancientwarfare.wikispaces.com
  • Location
    Bozeman, MT
  • Personal Text
    Developer of Ancient Warfare

Recent Profile Visitors

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

  1. shadowmage4513

    [Solved] [1.7.10] Transparent GUI Text

    shadowmage4513 replied to Alphexon's topic in Modder Support

    try a bitwise OR operation ( | operator) e.g. color | (alpha << 24) Although for this use (with colors being bit-aligned), there should not be a functional difference. Unfortunately, I have not tried playing around with transparent font-rendering, so could not give you a 100% for sure solution =\.
    • December 12, 2014
    • 2 replies
  2. shadowmage4513

    Getting the ItemStack the player has on mouse

    shadowmage4513 replied to Kloonder's topic in Modder Support

    player.inventory.getItemStack() e.g. PlayerInventory class has a method called getItemStack(), that returns the singlular item-stack that is on the cursor, or null for none.
    • November 21, 2014
    • 1 reply
  3. shadowmage4513

    [1.7.10] Asynchronous World Explosion

    shadowmage4513 replied to novemcinctus's topic in Modder Support

    A generic tick handler. Every tick it can check and decrement timers for any 'delayed explosion entries'. Any that are supposed to explode can then be made to explode. Or, if you have a block, you can schedule a block event/callback. Or, if you have a tile-entity you can use internal varialbes/onUpdate code. Or, if you have an entity you can decrement a variable in the entity/onUpdate code. There is not necessarily a thread-lock, however there are multiple issues with trying to manipulate data across threads (cache coherency, stale data, yadda, etc... multiple books can and have been written on the subject). You can't just jump in and muck about with another threads data.
    • November 14, 2014
    • 1 reply
  4. shadowmage4513

    Controlling the player to pathfind?

    shadowmage4513 replied to dylanpdx's topic in Modder Support

    I haven't watched the video, so merely speculating. Also, it generally helps people if you post what you have tried. My proposed method: Tickhandler. Call the pathfinder for the player to get a path. Every tick use your tickhandler to call the player-navigator to move him along said path. It might be easier than that... you -might- be able to just set him a path and let him go (as he shares most of the code with EntityLiving/etc). But I'm guessing because of the player-controlled aspect you will have some additional handling to do (i.e. through the tick-handler).
    • October 22, 2014
    • 5 replies
  5. shadowmage4513

    Fake player null pointer

    shadowmage4513 replied to brandon3055's topic in Modder Support

    Last I checked you don't need a fakeplayer to make mobs drop their rare-drops. There is (was) an int field you can set in the entity that denotes a timer since it was last hit by a player. If this timer>0 when it dies, it drops rare/player only loot. Simply set the timer to 1, and do whatever to kill the entity (I generally call entity.attackEntityFrom(genericSource, entityHealth). Upon further investigation, the field is still there, in EntityLivingBase. protected int recentlyHit; Use reflection / AT to set this to a value >0. Viola, the mob now drops 'rare' loot.
    • October 22, 2014
    • 2 replies
  6. shadowmage4513

    Why do entities jitter when adjusting their MotionY?

    shadowmage4513 replied to gummby8's topic in Modder Support

    They are both used in the vanilla entity movement and server->network synch code. You don't need to call them anywhere, but unless you have overridden a large majority of the vanilla code, then at least setPositionAndRotation2() will be called by the vanilla entity-position synch packets when processed. It is this method that causes the problems (at least in the base Entity class, might not for EntityLiving/etc), as it tries to do some collision testing at the same time and also ensure the entity is on the ground.
    • October 16, 2014
    • 9 replies
  7. shadowmage4513

    [1.7.10] Best time to initialize Tile Entity

    shadowmage4513 replied to AtomicBlom's topic in Modder Support

    Unfortunately validate() cannot be relied upon, as it can be called before the chunk is loaded entirely (e.g. it gets called for each tile entity when that tile is loaded, not for all tiles in a chunk after the chunk loads completely). This causes issues when 'examinig the world' as most of the nearby world will not exist/not be loaded. As suggested, a simple boolean flag works, check/set it your updateEntity() method. UpdateEntity is only called after the entire chunk is loaded, ensuring the world is ready to be queried. My personal method was lazy cache lookup -- I don't build a neighbor tile cache until something tries to access it. As the access can only occur from a tiles updateEntity method (in my case anyhow), this ensures that the world is loaded before the cache is ever built.
    • October 16, 2014
    • 2 replies
  8. shadowmage4513

    Why do entities jitter when adjusting their MotionY?

    shadowmage4513 replied to gummby8's topic in Modder Support

    Depending upon the entity type you are using (sounds like a base entity?), try overriding setPositionAndRotation2() in the entity and instead of calling super.setPositionAndRotation2(), call super.setPositionAndRotation(). The setPositionAndRotation2() has some extra code in it that will cause the entity to move around on the Y axis (on the client!) if it would be off the ground or partially inside of blocks. You can probably test if this is the case by debug-printing the Y coordinate for the entity from both server and client sides -- if they do not match/are not close, it is likely this issue that is causing your problem.
    • October 16, 2014
    • 9 replies
  9. shadowmage4513

    Item Tooltip is under other GUI Icons because its drawn earlier

    shadowmage4513 replied to Bedrock_Miner's topic in Modder Support

    Solution A: Do -not- render the tooltip while rendering the item-stacks. Iterate over your stacks a -second- time after the initial rendering, only rendering the tooltip for the mouse-over stack the second pass. Solution B: Implement a deferred tooltip render. Again instead of rendering the tooltip immediately with the stack, setup a deferred rendering. I do this in my GUIs by grabing a reference to the item-stack and the x,y position the tooltip is supposed to render at (this is setup while doing the initial stack rendering). After stack rendering I quickly grab my deferred tooltip data and render that. If the mouse is over a stack in the stack rendering, set the tooltip stack reference to that stack and set the x,y position, render the tooltip after the stacks, and set the tooltip stack back to null -- that way you know if the tooltip stack is -not- null that you have a tooltip to render.
    • October 15, 2014
    • 7 replies
  10. shadowmage4513

    Do I have to use the Incremental Garbage collector?

    shadowmage4513 replied to Busti's topic in Modder Support

    I believe the reason is because it is (on average) the most performant and most widely supported. Relying upon any specific Garbage Collection VM setting for your mod is a -bad idea-. You have no guarantees that your users would have that GC type enabled.
    • October 3, 2014
    • 6 replies
  11. shadowmage4513

    Is there a limit to how big an NBTTagList can be?

    shadowmage4513 replied to jotato's topic in Modder Support

    There -is- a packet-size limit for anything sent between client and server. Not sure off the top of my head what it is, but it should be at least 2MB. My guess is that MC is exceeding that limit when it sends the initial container contents from server-> client on GUI opening. Initial inventory contents are synched to client by container.addCraftingToCrafters(ICrafting), which ends up calling icrafting.sendontainerAndContentsToPlayer(Container, List<ItemStack>). This wraps up the entire inventory contents (including 'null'/empty slots) and sends them to the client. It is likely here that you are encountering the packet-size limit.
    • September 22, 2014
    • 8 replies
  12. shadowmage4513

    Explosion Event -- detecting / stopping / manipulating explosions?

    shadowmage4513 replied to shadowmage4513's topic in Modder Support

    Still unsolved. Have not been able to implement the desired features because of it. Moved on to other things =\ There have been a couple of pull-requests for forge/FML to add such an event, but I haven't seen any of them get actually pulled/merged. Would do a PR of my own, but no much use if the two existing ones are just sitting there =\
    • September 22, 2014
    • 9 replies
  13. shadowmage4513

    [Solved] None of the Entity AIs are working...

    shadowmage4513 replied to Awesome_Spider's topic in Modder Support

    Try calling super.onLivingUpdate() in your override of onLivingUpdate() I can't recall precicely, but I know the AI and movement states are updated from one of the living-entity update methods -- and you have overridden it without calling the super-class method, which means those AI updates likely are not occurring at all. Also...use the @Override annotation where appropriate (such as on that onLivingUpdate() method) -- will remind you of times where super() should be called, and even give errors when the MC code changes between updates / method names change.
    • September 8, 2014
    • 4 replies
  14. shadowmage4513

    opening a Gui for an entity

    shadowmage4513 replied to 3izzo's topic in Modder Support

    You can't pass the entity, true. BUT -- GUIHandler gives you 3 ints to work with (x, y, z). This data is sent intact to the client when the gui-open packet is sent. Most would use this data to send a block-position for the gui (chests/machines/etc) -- but with an entity you do not need the block-position. The normal procedure for accessing entities client-side for GUIS is to send the entities entityID via one of those int parameters. You can then read this param client-side and retrieve the entity from the world via world.getEntityByID() (or w/e it is called in the current obfuscation),.
    • August 20, 2014
    • 3 replies
  15. shadowmage4513

    GUI Components like buttons, sliders, ... ?

    shadowmage4513 replied to McJty's topic in Modder Support

    There are some -very- basic GUI widgets included in vanilla -- buttons, text-boxes, sliders. However, compared to normal GUI libraries they are quite backwards and difficult to use without much manual integration into your gui. I believe most people develop their own GUI widgets / classes. I did for my mod, I know chickenbones did for NEI, pretty sure the BC team has custom GUI stuff for BC as well. There is/was a 'minecraft GUI's' API/mod at one point that was meant to work as a shared GUI library, but I never looked into it too much -- it might still be available, can probably google for it (minecraft GUI API or similar).
    • August 14, 2014
    • 1 reply
  • All Activity
  • Home
  • shadowmage4513
  • Theme
  • Contact Us

Copyright © 2017 ForgeDevelopment LLC Powered by Invision Community