Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Draco18s

Members
  • Joined

  • Last visited

Everything posted by Draco18s

  1. Some of us aren't very familiar with how Gradle works or the syntax used in the build.grale file. Mind providing and example? Say, SomeRandomMod-1.8.8-v3.jar located in /[install location]/libs/ Everything I know about how to use Gradle had come from other people's build.gradle file and a lot of guess work, as the documentation is very vague in some ways, as if they expect the reader to already be familiar with some other aspect of Gradle. I still haven't got my build file to produce exactly what I want and no more, only "everything minus what I don't want." (That is, it does everything and then copies what I want to a new file). There are a number of things I've tried which looked like they should have worked, but did not. For example, custom properties to manage mod versions. Never figured out why Gradle would throw undefined errors at me, ended up just using in-line variables and string concatenation. A lot of folks around here say things like, "oh, just add a maven repo to your build file" as if we know what that means and how to do so. Or, in this case, chaise is for not knowing that Forge Gradle could deobfuscate arbitrary mods. Sorry, but that feature/ability had never been mentioned anywhere that I've seen before. Maybe I suppose I could have guessed that it could, but not knowing what or how to tell Gradle that I want that, I may as well believe it to be impossible.
  2. Derp. Been mobile all day, didn't notice.
  3. In your icon registration method, tell it to register the custom sprite. Edit: I've lost track of where I did it that way. But the IIconRegister interface is only used by one class, so figure out what that class is, cast to it, and add the atlas sprite to it manually.
  4. I would have to make a lot of changes... I'm considering just ditching Forge and doing this on my own if there isn't a way to do it with Forge hooks. I am pretty sure the extent of the changes you would need to make would make it impossible to remain compatible with Forge: You would have to add additional parameters to a number of packets, and in doing that, everything will break.
  5. The important thing is what kind of data does it use. Anyway, the class you want to extend is TextureAtlasSprite
  6. Please do! I've always thought about making my own chairs.
  7. Does your Fluid actually have an icon? And I mean the Fluid not the BlockFluid .
  8. That's not how events work. The event handler class had no hierarchical relationship to the event type they handle. Check mine: https://github.com/Draco18s/Artifacts/blob/master/main/java/com/draco18s/artifacts/ArtifactServerEventHandler.java
  9. You're also calling super() which makes no sense at all.
  10. This is what I do. I have one item that contains metavariants to display the textures needed for the various achievements I have.
  11. Also store the TE in a variable: TileEntity te = world.getTileEntity (pos.Noth ()); If (te != null && te instanceof PowerConnectable) { }
  12. This is correct. You can chain them, but its not good practice to do it in the constructor. For iron picks to harvest it faster all you have to do is nothing. Iron will automatically be faster than stone, than wood, than by hand. That said, there's three options: 1) Override getHarvestTool and return null. This will say "this block is always harvestable." 2) Override getDrops which will let you drop the item, "harvested" or not. 3) Override getPlayerRelativeBlockHardness which will let you dictate how long it takes to break. Note: this will be the hardest method.
  13. Correction: You can have more states than 16 if some of them aren't saved in metadata, but are instead states based on the world around the block. For example, BlockFire has 96 states in its model file. Because its directional facing is based off of neighbor blocks, not metadata.
  14. There is no possibility of finding the player that activates redstone, as the are non-player methods of applying a redstone signal. Pressure plays activated by mobs or items, block update detectors, detector rail...
  15. Yeah, you're not going to be able to figure that out.
  16. Oh my ducking god. YOUR CODE IS WRONG
  17. This code seeds end ores into the overworld. case 0: // dimension 0 is the overworld generateEnd(world, random, chunkX, chunkZ ); // add end ores break; Etc.
  18. Well, it would help if you generated surface ores in the overworld, end ores in the end, and nether orex in the nether.
  19. Looking at 65000 blocks (a whole chunk) doesn't take that long. Less than a millisecond based on my own observations (doing block lookups, rather than TE). I'd you only do the check every few seconds, rather than constantly (how often is the player going to move far enough or the works state change such that the results are no longer valid? ), the lag will never be noticable.
  20. I'd be sending a password through a non-encrypted POST. Very unsafe. If it doesn't improve the security of the change, I wouldn't want to make the client store any additional data anywhere. Salt and hash. Done.
  21. Re if-blocks: this is what Math.floor() is for. Conversion from flay or double to integer it equivalent to Math.truncate() which rounds towards zero. Identical to Math.floor() for positive values, but not for negative. As for sneaking, you are unlikely to solve that problem to your satisfaction, as there are eight possible blocks the player could be standing on, possibly up to 3 of them.
  22. This reminds me that I should really oreDict some of my machines. It's mostly edge-case at the moment, but it would future-proof it.
  23. IIRC this won't work because there is a ton of code that uses instance-of checks necessary to the proper operation of paintings.
  24. Pretty much this. I have a mod that adds various effects that spawn on a custom item. So the API allows a plugin to register new effects. I have another mod that deals with ores, so the API supplies hooks for the various triggers and abilities there. It is sufficient to allow another mod to register with mine an entirely new ore that operates on the same principles. Another mod adds gasses that go "open doors? signs? pssh, those aren't full blocks" and flows past them. So its API lets other mods specify "hey this block is a door (with open/closed states)" or "this block is just not solid at all" (like iron bars).
  25. blocks will never equal blockstates, so you're going to have to rephrase your question. What is it that you are trying to do?

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.