Jump to content

Some web services and downloads are currently unavailable due to internal restructuring. In the meantime you can probably find what you're looking for in our Discord chat server. For more information, check the newsfeed or ask in Discord.

United Kingdom Tinytimrob

Robert James Dennington
Programming Staff
  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Tinytimrob

  1. Resolved in 27 DEV9.4
  2. A new update is now available for Robbit (version 27.0.0-DEV9.4, revision 5106). Patch notes for this version follow. Robbit "Fondant Fancy" Patch 27, Development Preview 9.4 (15 February 2019) Bug Fixes and General Changes Fixed a possible crash which might occur when being shot at by Strays in the Frost biome. Reporting Bugs If you find any bugs, please report them on the Robbit issue tracker. This will help us to weed out and fix bugs faster and more efficiently. Thank you.
  3. I wrapped the arrowHit function so that it only executes on server side (netsync should sync the potion effect to client) and only if potion!=null. Should fix the problem
  4. Early investigation indicates the NPE was thrown when calling hasTagCompound on ItemStack which was passed into getEffects function of ItemPotion (see here lines 56-62) /** * Returns a list of potion effects for the specified itemstack. */ public List getEffects(ItemStack p_77832_1_) { if (p_77832_1_.hasTagCompound() && p_77832_1_.getTagCompound().hasKey("CustomPotionEffects", 9)) { from the arrowHit function of EntityTippedArrow (see lines 158-163) @Override protected void arrowHit(EntityLivingBase living) { super.arrowHit(living); List effects = Items.potionitem.getEffects(potion); This would indicate the potion variable was null. This should be impossible, since the potion variable is never replaced with null, and it is initialized to a valid stack in the entityInit function: @Override protected void entityInit() { super.entityInit(); this.potion = new ItemStack(Items.potionitem, 1, 0); The potion variable is never sync'd to the client, as it has no need for the data. Therefore, the only way it could be null from what I could see is if entityInit was never called, which seems unlikely, given that it's called by the constructor. The alternative is that the tag compound is null and the NPE is being thrown by calling hasKey, but hasTagCompound only returns true if it ISN'T null, so that would seem impossible too. Consequently, I'm not sure at all right now what would trigger this crash.
  5. Had this sent to me by Tyler Bisso: java.lang.NullPointerException: Ticking entity at net.minecraft.item.ItemPotion.func_77832_l(ItemPotion.java:61) at robbit.backcraft.entity.projectile.EntityTippedArrow.arrowHit(EntityTippedArrow.java:163) at net.minecraft.entity.projectile.EntityArrow.func_70071_h_(EntityArrow.java:360) at robbit.backcraft.entity.projectile.EntityTippedArrow.func_70071_h_(EntityTippedArrow.java:78) at net.minecraft.world.World.func_72866_a(World.java:2341) at net.minecraft.world.World.func_72870_g(World.java:2294) at net.minecraft.world.World.func_72939_s(World.java:2132) at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:2147) at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1062) at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:985) at net.minecraft.client.main.Main.main(Main.java:194) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
  6. A new update is now available for Robbit (version 27.0.0-DEV9.3, revision 5103). Patch notes for this version follow. Robbit "Fondant Fancy" Patch 27, Development Preview 9.3 (11 February 2019) Bug Fixes and General Changes Fixed a crash when trying to place FMP covers on AE2 cables. Reporting Bugs If you find any bugs, please report them on the Robbit issue tracker. This will help us to weed out and fix bugs faster and more efficiently. Thank you.
  7. Tinytimrob

    Crash placing FMP cover on AE2 cable

    Fixed in r5102
  8. As per title. It gets stuck in a loop. ---- Robbit Mod Pack Crash Report ---- // This crash definitely wasn't Rob's fault... Time: 2/10/19 11:52 PM Description: Exception in server tick loop java.lang.StackOverflowError: Exception in server tick loop at appeng.parts.CableBusContainer.getTile(CableBusContainer.java:364) at appeng.fmp.CableBusPart.getTile(CableBusPart.java:706) at appeng.parts.CableBusContainer.getTile(CableBusContainer.java:364) at appeng.fmp.CableBusPart.getTile(CableBusPart.java:706) at appeng.parts.CableBusContainer.getTile(CableBusContainer.java:364) at appeng.fmp.CableBusPart.getTile(CableBusPart.java:706) at appeng.parts.CableBusContainer.getTile(CableBusContainer.java:364) at appeng.fmp.CableBusPart.getTile(CableBusPart.java:706) at appeng.parts.CableBusContainer.getTile(CableBusContainer.java:364) at appeng.fmp.CableBusPart.getTile(CableBusPart.java:706) at appeng.parts.CableBusContainer.getTile(CableBusContainer.java:364) at appeng.fmp.CableBusPart.getTile(CableBusPart.java:706) <snip> A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details: Minecraft Version: 1.7.10 Robbit Version: Fondant Fancy 27.0.0-DEV9.2 (fondant-r5100) Operating System: Windows Server 2016 (amd64) version 10.0 Java Version: 1.8.0_191, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 15640479472 bytes (14915 MB) / 17110138880 bytes (16317 MB) up to 17110138880 bytes (16317 MB) JVM Flags: 14 total; -Xms16G -Xmx16G -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:+CMSParallelRemarkEnabled -XX:MaxGCPauseMillis=50 -XX:+DisableExplicitGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:TargetSurvivorRatio=90 -XX:+UseLargePages AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 14, tallocated: 94 FML: ~~ERROR~~ NoClassDefFoundError: org/lwjgl/Sys AE2 Version: beta rv3-beta-6 for Forge AE2 Integration: IC2:ON, RotaryCraft:OFF, RC:ON, BuildCraftCore:ON, BuildCraftTransport:ON, BuildCraftBuilder:ON, RF:ON, RFItem:ON, MFR:OFF, DSU:ON, FZ:OFF, FMP:ON, RB:OFF, CLApi:OFF, Waila:ON, Mekanism:OFF, ImmibisMicroblocks:OFF, BetterStorage:OFF, OpenComputers:OFF, PneumaticCraft:OFF Profiler Position: N/A (disabled) Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used Player Count: 1 / 64; [EntityPlayerMP['Tinytimrob'/420, l='dimensions', x=901.34, y=67.00, z=1313.31]] Is Modded: Definitely; Server brand changed to 'robbit' Type: Dedicated Server (map_server.txt) Workaround for now is not to place covers on AE2 cables.
  9. Tinytimrob

    Crash placing FMP cover on AE2 cable

    Looks like this crash is caused by a typo. @Override public TileEntity getTile() { return this.getCableBus().getTile(); } should be @Override public TileEntity getTile() { return this.tile(); } The original line is a compile fix added in appliedenergistics subrepo revision 59 (dev-mu1 changeset 3f800b1efcec) dated 2017-05-03 14:41:52 +0100. Main robbit source revision introducing the bug is dev-mu1 r4531 (00f865b3192b) [Update Applied Energistics 2 to version rv3-beta-6] merged into fondant as r4565 (1b32f7a69b87). First version of Robbit to have this crash is 27.0.0-DEV5 released on 4th June 2017.
  10. Tinytimrob

    Crash placing FMP cover on AE2 cable

    Confirmed issue
  11. The development of GIF is proceeding at full pace. It's been around 6 months since the last blog post, so I figured I'd get everyone up to speed with the state of the game's development. Level design I'm pleased to report that we have now completed the design and development of all levels. The final level to be completed, Suspension, was submitted by Paul on 26th January. To the best of my knowledge, the game should now be completely playable from start to finish without any major issues! As a result, we are now working on polishing Several of the newer levels have been designed by Braydon who was previously focusing on music and sound. He turned out to be a really versatile and multi-talented guy and I think we're very lucky to have him on the team. In the last blog post, I talked about how we hadn't yet decided on what to call the "classic" zone. The name we ended up choosing was the cave zone. To go along with this, many of the levels have been thematically restyled in order to have a more cave-like feel to them - Braydon did a lot of work in this area. We've also added the previously promised parallax backgrounds to provide a really visually stunning appearance to the game. Here you can see a before-and-after comparison of the level "Twists and Turns" which was shown off in the last blog post: As you can see, the new version of the level has a sort of darker and more cave-like feel to it. This is something we have worked hard to push for, and it really shows - many of the levels have been greatly improved as a result of the work. The ice zone has received similar treatment, and the new background helps to really emphasise the icy feel with layered spikes jutting out from the ceiling and floor: Finally, the factory zone background features pipes and metal lattice: If you compare to the original backgrounds, you can really see how much better these look, especially once you get in-game and see the parallax effect. Trevor has done an amazing job here and the effort has definitely paid off. Of the 75 levels, 49 of them currently have medal times set, and both the cave and ice zones have had their levels ordered appropriately in order to make the difficulty increase gradual. The remaining 26 levels without medal times set (1 ice zone level and all factory zone levels) are currently being worked on to figure out what medal times are appropriate, and the factory zone level ordering will follow shortly afterwards. This is a process I expect to take a few more weeks. New menus We are currently in the process of working on replacing the placeholder menus with ones that look more professional. You can see some of the new menus here: Main Menu Pause Menu Settings Menu Most importantly, the settings menu can now be opened from either the main menu screen OR the in-game pause screen. As a result, it is now possible to edit things such as audio volume or screen resolution without having to abandon play. Improved help signs The help sign system has been significantly improved. When the player walks over a help sign, the bottom of the screen now shows a little tooltip showing you which key or button to press to read the help sign: If you press the relevant button, you're presented with the help information and the game timer pauses to allow you to read it: This works much better than the previous methods of either forcing the annoying popup to be displayed (like the original) or displaying it in an obtrusive fashion over the top of the level (like the remaster previously used to do). Improved level select and statistics The level select screen is currently the area undergoing new work. The PC/console version of this screen hasn't been skinned yet, but there are a couple of improvements to show. Firstly, the medal sprite has been updated and looks way more polished. Secondly, the leaderboard now has the best times colour-coded by medal type, with the medal being shown next to the time, and the timing numbers have been properly aligned to avoid visual discomfort. Thirdly, this screen now shows you how many attempts you've made on each level, how many times you completed it, and your overall success rate. You might also notice the new "statistics" button, which sends you to a display showing you how many times you were killed by each type of thing so far: These screens are still a work-in-progress, and, as I said, they haven't been skinned yet. You can therefore expect them to look way better once the skinning is done. For mobile, we are hopefully going to design a completely new level select screen which features swiping to select levels. This hasn't been implemented yet though. Medal shown on level complete screen The level complete screen has been modified to show the medal you obtained, complete with a little lanyard: This screen is, again, not skinned yet. You can expect to see some significant visual improvements here once the skinning is done. Other improvements In addition to visual polish, the game has had a number of important performance improvements applied to it recently. The biggest area of work has been in collisions, with inaccessible blocks no longer having any collision mesh, and with the remaining blocks having caching groups applied in order to further reduce the number of collision calls. This has almost doubled the fps of the game on some phones, as well as helping to smooth out lag spikes, which is obviously really important for the mobile release. I am going to continue to look for areas where the performance can be improved over the coming weeks as we eek closer to the release deadline. I've also taken the time to improve the USB controller code. The game can now be played using the analog stick in addition to the d-pad thanks to a new subroutine which divides the analog stick into 8 equal segments in order to reliably determine which direction you intended to move in. It works really well - controlling the player is really consistent. There is also now a new setting which allows you to jump using the stick rather than using the jump button if you so wish (although IMO it makes the game significantly harder to play - serious players are likely to avoid it). The mobile touch controls have been improved in a similar way, and can now be resized so that you can set a comfortable control size for your device. The superjump button will now also disappear by default when not required (but if you dislike that behaviour, you can disable it in the settings menu). The medal system has been slightly adjusted too. You will now receive a "rusty" medal in the event that you complete a level but don't get a time worthy of the bronze rank (although we expect that most players will be able to hit bronze rank without too much difficulty). The rusty medal will not be worth any points towards unlocking the next zone, although the zone unlock restrictions are going to be relaxed a little. The idea is that you will be able to unlock the next zone either by A) getting enough points, or B) completing every level in the previous zone. This means that you can get 25 rusty medals and you will still advance to the following area. For this reason, the first play-through can be focused on just completing each level if you prefer, rather than worrying about how good a time you achieved. Final remarks I hope this update has given a little insight into the state of the game right now, along with what you can expect going forward I can also pretty confidently say that we are really close to release now that all the game design work is essentially finished. Once the rest of the polishing is completed, I can see us handing the game over to the various publishing stores pretty promptly. We are also likely to start work on the trailer and advertising materials soon. If you're interested in this game, please check out the Discord server to keep up to date with the latest news and to hear promptly about any upcoming release announcements.
  12. I'm pleased to report that the HG repository service (hg.ginever.net) is now tentatively reopen. The newly updated service is powered by the latest version of Kallithea SCM. As part of the update, Kallithea has been patched to support 2FA codes during the login process, along with push and pull by using SSH/pageant. These two changes were required in order to support GineverAccount 5.1 and are effectively tied together, because the 2FA codes break the username/password authentication typically provided over https, meaning that people with 2FA enabled are effectively forced to use SSH instead. Because these patches are experimental, they are not very well tested, and may end up causing minor problems. As a result of this, the new service will be shadowing the Bitbucket repositories until I'm happy that it is decently stable, and may be subject to arbitrary patches and bug fixes. Any issues you discover should be reported to me directly. Please note that if you wish to use the service, you will have to head over there and (if needed) input your SSH public keys into the control panel in the exact same way you previously did at Bitbucket. Please contact me if you think you need help with this. Thanks all.
  13. A new update is now available for Robbit (version 27.0.0-DEV9.2, revision 5100). Patch notes for this version follow. Robbit "Fondant Fancy" Patch 27, Development Preview 9.2 (17 January 2019) Bug Fixes and General Changes Fixed an issue where the Steam Turbine would not connect to the IC2 energy net. Reporting Bugs If you find any bugs, please report them on the Robbit issue tracker. This will help us to weed out and fix bugs faster and more efficiently. Thank you.
  14. Alright, some more digging! Railcraft tile entities themselves do not implement any IC2 API functions. This is so that the TE classes can be instantiated without IC2 being present. Instead, it uses delegates for IC2 functionality, and whenever add-to-enet and remove-from-enet are called, it passes them through to the delegate. Normally this works fine because all of the delegates added/removed from the e-net implement IEnergyTile (and where necessary either IEnergyAcceptor or IEnergyEmitter). In the case of the Steam Turbine though, Railcraft can't do this as-is, because the turbine is a multi-block structure. IC2 uses a "meta-delegate" to wrap multiple energy tiles together in the case you have a machine implemented as a multi-block structure and that must also be used here. The implementation of this provided by Railcraft for Steam Turbine is "TileIC2MultiEmitterDelegate". IC2 asks this implementation to return a list of all of the IEnergyTile subtiles it is encapsulating - and it attempts to do this by returning an unmodified list of all turbine component tiles. The problem is that none of of the turbine component tiles implement IEnergyTile because this behaviour is normally delegated. Consequently none of the subtiles get added to the energy-net, and no power gets generated. Even if the subtiles get modified to implement IEnergyTIle this is STILL not enough because the cable connection relies on the subtile implementing IEnergyAcceptor or IEnergyEmitter and either of those interface implementations allowing a cable connection in that direction. I modified the component tiles to implement IEnergyAcceptor/IEnergyEmitter where necessary... and while this did make the Steam Turbine work correctly, the RC delegation system ended up broken. Looking to see if there is a better solution before pushing ahead with this one.
  15. Looks like IEmitterDelegate and ISinkDelegate are not implementing IEnergyTile (maybe a development oversight by CJ?). In addition to the Steam Turbine, this may also break the energy-net cable connections for the Electric Feeder, Energy Loader, and Energy Unloader (although right now it seems confined to Steam Turbine so I'm thinking this is broken somehow due to the turbine's multi-block nature)
  16. A new update is now available for Robbit (version 27.0.0-DEV9.1, revision 5097). Patch notes for this version follow. Robbit "Fondant Fancy" Patch 27, Development Preview 9.1 (27 November 2018) Bug Fixes and General Changes Fixed an issue where the Ender Chest was usable on Chimerion when it wasn't supposed to be. Fixed a sync glitch with the restriction of leaping potions in dim 12. Fixed an issue where the fall damage from jumping was incorrectly calculated in dim 12. Reporting Bugs If you find any bugs, please report them on the Robbit issue tracker. This will help us to weed out and fix bugs faster and more efficiently. Thank you.
  17. A new update is now available for Robbit (version 27.0.0-DEV9, revision 5090). Patch notes for this version follow. Robbit "Fondant Fancy" Patch 27, Development Preview 9 (15 November 2018) The primary focus of this patch is to backport more features from Vanilla 1.8 and later to Robbit 1.7. As a result, there is not really any new content for those of you who are used to those later versions of Minecraft. However, from the context of Robbit, they are new It is kinda nice to be able to have these features (and to continue to demonstrate how pointless most of Mojang's refactoring over the last 3-4 years has been) I started working on these backports quite a long time ago so I'm pretty happy that I can finally roll out a patch that includes them. In the future, I intend to backport even more stuff from newer versions of Vanilla. Please ask in the Discord server for access to the tracking spreadsheet if you want to follow that work. Backported Features and Changes The following features have been backported from Vanilla Minecraft as part of this patch (using version 1.12.2 as a base source): Zombie "Husk" variant Skeleton "Stray" variant Polar Bears Llamas Parrots Tipped arrows Lingering potions The "Dragon's Breath" item The "Dragon's Head" item Area of effect cloud Spit particle The following general purpose changes were also applied: Skeletons now keep their arms down by default, raising them only when about to fire. Villager subtypes are now explicitly named in the GUI and tooltip. Zombie Villagers now retain their villlager types and have type-specific skins and names. Rabbits now spawn in Desert biomes. Rabbits spawning in Desert and Snow biomes now have a high chance of spawning with matching colour. Heads now render in 3D in the inventory (including with player-specific skins). Refactored the way the Horse is built to allow for backporting of Llamas. Refactored the pathfinding system a little to allow for backporting of Parrots. Mobs using the pathfinding system now have an extra AI routine to avoid walking into water. Villages now generate with grass paths. Villages generating in Savanna biomes now generate with acacia based blocks instead of oak. Please note: For the purposes of using tipped arrows, since 1.7 does not have any off-hand slot, the bow will simply fire arrows based on the order you have them stored in your inventory. This is a compromise which enables the tipped arrows to be usable in some fashion, but I am aware it is not ideal. There might be further updates in future in this area - please keep watch if this interests you. Bug Fixes and General Changes Fixed issue with Dim 12 displaying "null" owner in infobox. Fixed issue with the shopping GUI not showing the coin symbols in the correct places. Fixed placed weapon dummy having no language string for its name. The entity registration system was internally refactored. Non-mob entities are now forced to be registered in local space in order to preserve entity ID space for mobs. Placed player heads now have a WAILA tooltip indicating whose head you are hovering over. Fixed some issues where mobs that were swimming in non-water harmless fluids (e.g. oil, diesel, creosote, etc) would not pathfind correctly. Fixed issue with IC2 rubber wood log not being in ore dictionary.