Skip 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. Yellow is RED + GREEN. https://en.wikipedia.org/wiki/Additive_color
  2. Funnily enough, I was actually contacted about working on the XBox version of Minecraft. If it weren't for the fact that my C++ skills are virtually non-existent I'd have taken it.
  3. Oh. I know why him removing ITileEntityProvider "erases his data." He doesn't have @Override marked and/or isn't dealing with the IDE error involved when he removes the interface. So he's not overriding the correct method, so when the game runs it treats the block as not having a TE.
  4. We posted at the same time. Anyway. The annoying thing I find about IItemProperties is that you will end up with a bunch of model json files (I much prefer blockstate files in this regard). I haven't found a way to just "give it a different texture" as the base model file (e.g. this one* in my own mod), the format is such that it expects a "model" tag, not a "texture" tag. I tried just supplying a new texture and it threw a Missing Model at me for my efforts. I think it has to do with the fact that an item model is still made out of baked quads, so in order to "change texture" you're actually just displaying a different model (which was run-time generated from a pre-specified texture in that model file). *The "time" string should be changed, but as I was working from the vanilla Clock as a starting point I haven't changed it yet, it's just the name of the property that was created. In this case it should be "rainfall" as it is arbitrary, but needs to match.
  5. As I've found it large comes down to "if it's been a few days, post a comment asking why it's not been accepted." The entire process is ungodly tedious with several points of failure that it is very easy as a programmer to overlook and which Lex will come along and go "You did X wrong" and then proceed to mark every occurrence with "..." as if you're somehow only barely intelligent. The "how to do this properly" list of guidelines is very sparse and doesn't teach you how to look at the patch file and find these problems on your own. Took at least four rounds of review before I fully understood how I was supposed to be doing things. Or in one case for me, "rejected because it alters vanilla behavior" which I thought was the whole point (as opposed to "rejected because you should have gone about it in by doing X instead of Y").
  6. BreakSpeed seems like the one to use to me. But again, what are you trying to achieve, not how you plan to code it, but what you want to happen from the player's point of view as he's playing the game. e.g. Goal: "If the player tries to mine coal with an iron pick, it starts a fire in a random nearby tile." Code: "I want an event that lets me check the player's held item so that..."
  7. Skipping over the "where to start" because don't. You will not find Forge-specific details on starting to coremod. There used to be slight hint here and there, but the Forge team is working to make it so that coremodding is not needed at all. Instead, make a pull request to get the change you want implemented into Forge itself. I recently did that myself. On to the other question, alternatives: Block/Item substitution OreDictionary ("requiring pistons in recipes") or outright modifying the list of recipes to find entries that don't use oredict recipes. Events - almost everything you'd want to be able to do as a result of coremodding has an event. If it doesn't: Make a pull request
  8. You may have to combine models as well, which is doable,
  9. Your TE's constructor must take 0 parameters or it will be unable to be recreated when the game is loaded from disk.
  10. world.getTileEntity for one.... You were told already how to do the other...
  11. It's a method you haven't overriden, therefor it exists in one of your class's parent classes.
  12. Entities have a UUID field. Get it. Save it into a field of your TE.
  13. Yes, that change would indeed make it spin faster. Because math.
  14. Also, don't create your own PropertyDirection, use the one from BlockDirectional
  15. Also, why this? for (Field f : Items.class.getDeclaredFields()) One shouldn't have to use reflection to register blocks/items/models IMO
  16. Actually, that was Dropbox. http://superuser.com/a/1131164/528962
  17. In your IDE you can look for classes that extend the Event class from forge. Right Click -> Open Type Hierarchy
  18. Oh sorry, you were right the first time. I didn't realize the event was declared as a static class inside the OreDict. What's your problem?
  19. public void OreRegisterEvent(OreRegisterEvent e) { }
  20. https://mcforge.readthedocs.io/en/latest/events/intro/
  21. Subscribe to it, do whatever you want to.
  22. https://github.com/Draco18s/HarderStuff/blob/master/src/main/java/com/draco18s/ores/entities/TileEntitySifter.java#L263-L293
  23. You mean the ItemStack "damage value", right? In that case: [0, Short.MAX_VALUE] . A short would have a maximum value of 32,767 yes. Which is 'approximately the same value' as I said. Also, it's 1 less because I believe the exact value of 32,767 is used as the WILDCARD_VALUE
  24. Cannot set property PropertyEnum{name=half, clazz=class net.minecraft.block.BlockSlab$EnumBlockHalf, values=[top, bottom]} as it does not exist in BlockStateContainer{block=spaceextended:double_vitallium_slab, properties=[variant]} Your block's variant statecontainer object does not contain the states you are trying to use.

Important Information

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

Account

Navigation

Search

Search

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.