jredfox
Members-
Posts
660 -
Joined
-
Last visited
Everything posted by jredfox
-
metadata is depreciated and in 1.13 removed
-
because this needs to be done during chunk populate event I create the instanceof the base entity simply to see what the floor should be nothing to do with a mob spawning from a spawner it's worldgen. that would turn the floor anywhere you place it I only want that to be in the dungeon specified so...
-
I only plan on changing the floor during worldgen if the entity can't spawn on the block of cobblestone or mossy cobblestone. I think the best way to do this is for users to define the floors but, give them some auto detection if it's IAnimal put the default floor to an actual block rather then the keyword of "default". As for the lightlevel the user will be able to define torches on the walls somehow haven't thought of it yet Then for specific dungeon dimension overrides and advanced xml entries they can override the global floors walls roof there
-
because this is ridiculous 0-255day + 0-255 night iterations per block * amount of blocks * amount of entities + a constant fill command based on entities width and length for a fake world object on startup. Is there any better way of doing this if I do it the only way I can think of then that's highly unoptimized probably will delay the game startup a full minuet on post init during a modpack. my goal is to set the floor of the dungeon with whatever block the entity is suppose to spawn on I could hard code stuff but, then it won't work with mobs from other dimensions like the aether bunny then I would have to add the ability for users to parse floor blocks and override the floor per mob
-
mobspawnerbaselogic? can't use that I want a cache. So what make a fake world set light level to dark 0 and make of 16 both times each time and iterate through all blocks and entities then? is there at least a way to determine light level? well I think there should be a set of resource locations of blocks that the entity can spawn on ignoring light level. or a method that determines if a entity can spawn on a block
-
How do you do this or is there no set definition for default spawn block? I need this to change my dungeon floor if it can't spawn under a specified block such as cobblestone when it's looking for grass block Solved: you can't but, for dungeon tweaks during word gen I have the floor being parsed through config files and if IAnimal config will be by default grass. There is another way but, way unoptimized create a fake world do 255*2(one day one night) of a single block in a fake world for all blocks* amount of entities but, I don't really know how to do that t that's not a success always for grabbing the blocks as entity can be bigger so then you would have to fill on layers from 0-255 yes it could be done but, parsing floors from a couple files is probably more optimized.
-
ok yeah I got the fields and parameters but, where does forge store the parameter files for srg? I only see the stuff for asm but, nothing tying the srg to the srg method.
-
[Solved]I18n.translateToLocal Not Working For Entities Anymore?
jredfox replied to jredfox's topic in Modder Support
what do you find that's so bad about this method? I try entity.getname() if that return null then I use the general translation that shouldn't return null. What you saw was exception handling. I also ignore nametags since I don't want that for the spawner display name ever. So if you found something that will cause severe errors/not working right please tell me. I send in an nbt spawner tag from spawndata {id:"mobid",properties like Color:int} -
[Solved]I18n.translateToLocal Not Working For Entities Anymore?
jredfox replied to jredfox's topic in Modder Support
looks cool though doesn't always work but, I did see that general translations used the translation from the I8 whatever in the base entity class. Here is why it doesn't always work you will actually get null point exceptions by only using entity list @Nullable public static String getTranslationName(@Nullable ResourceLocation entityType) { net.minecraftforge.fml.common.registry.EntityEntry entry = net.minecraftforge.fml.common.registry.ForgeRegistries.ENTITIES.getValue(entityType); return entry == null ? null : entry.getName(); } that reuturns entity.getName() always instead of doing the direct translation like it does in the main entity class. For example some mods return null for getName() and they have a valid translation via the lang files I found this out the hard way with crashes. So I created two separate methods for always determining the best name for the entity open source. String s = EntityList.getEntityString(entity); String EntityName = I18n.translateToLocal("entity." + s + ".name"); So for mods that return null for getName() like some do and have valid translations from the lang file I made this work around. I still try to get the entities specified name else get general name see code here https://gist.github.com/jredfox/e819f0ad29e9b52e33392781e745c99b ok if nobody else has any other questions on why I had to do what I had to do I think this thread is good enough for people to find the help they need. -
[Solved]I18n.translateToLocal Not Working For Entities Anymore?
jredfox replied to jredfox's topic in Modder Support
Ok after much research I have decided general names are not good enough try command sender names first after removing the tag of custom name so I get the actual translated name. The reason why my translation method was supreme before is it always got the general name. I just mistranslated how to get the entity string name in 1.12.2+ I was use to 1.7.10 code that changed then didn't look to see how they did it now. my translation method is once again supreme Call TransLateEntity(NBTTagCompound nbt,World w) and it will always output the right name https://gist.github.com/jredfox/e819f0ad29e9b52e33392781e745c99b -
[Solved]I18n.translateToLocal Not Working For Entities Anymore?
jredfox replied to jredfox's topic in Modder Support
Yeah I guess I should rename that to getGeneralTranslation() since even if the entity name returned stomper the giant for a player/boss name it would return something like enderdragon or player -
[Solved]I18n.translateToLocal Not Working For Entities Anymore?
jredfox replied to jredfox's topic in Modder Support
getName() > Returns command sender name which isn't the name of the entity I want unless the translated name is null. This is because you got a player steve and I want to say this is a steve monster spawner I don't say this is a jredfox monster spawner I say this is a steve monster spawner getDisplayName() > I believe this had failed sometimes and or was crashing my game because was almost always null in every version I tried and or this returned command sender name. There use to be three methods and now there are two The translation setup I have is supreme for the general name of the entity. If I wanted a specific name of that entity I would use command sender name Which I might have to make another translation name for my mods anyways once the time comes Edit display name does something funky * Get the formatted ChatComponent that will be used for the sender's username in chat */ public ITextComponent getDisplayName() { TextComponentString textcomponentstring = new TextComponentString(ScorePlayerTeam.formatPlayerName(this.getTeam(), this.getName())); textcomponentstring.getStyle().setHoverEvent(this.getHoverEvent()); textcomponentstring.getStyle().setInsertion(this.getCachedUniqueIdString()); return textcomponentstring; } -
[Solved]I18n.translateToLocal Not Working For Entities Anymore?
jredfox replied to jredfox's topic in Modder Support
anyways I got a supreme entity translation method if you wanted to use it for you code pretty cool it cannot fail unless there is no general name and also no command sender name. It is marked as the solution above -
[Solved]I18n.translateToLocal Not Working For Entities Anymore?
jredfox replied to jredfox's topic in Modder Support
I didn't see any comments in the resource location class that said forge edited the in the "minecraft:" in the past they did patch stuff like that in 1.7. They still patch minecraft mod container for minecraft as well I believe but, as for the resource location that was a mojang gift to modders. this.resourceDomain = org.apache.commons.lang3.StringUtils.isEmpty(resourceName[0]) ? "minecraft" : resourceName[0].toLowerCase(Locale.ROOT); this.resourcePath = resourceName[1].toLowerCase(Locale.ROOT); Validate.notNull(this.resourcePath); Also you can take a look at the /summon command with no forge in it. I know the changes in the entity string id in 1.10.2+ surprised me to. /summon minecraft:wither_skeleton I will post my translate entity method when I am done debugging it fully -
[Solved]I18n.translateToLocal Not Working For Entities Anymore?
jredfox replied to jredfox's topic in Modder Support
minecraft.mobid = mobname it's that way in 1.13 also new ResourceLocation("sheep").getDomain() return "minecraft" since if has no : resource location fills in minecraft been this way in 1.12 not sure about previous like 1.7.10 -
[Solved]I18n.translateToLocal Not Working For Entities Anymore?
jredfox replied to jredfox's topic in Modder Support
Ok it appears vanilla is the issue here entity.Pig.name=Pig instead of: entity.modid.mob.name=name So yeah I figured it out get resource location of entity replace ":" with "." and see if I get a proper translation ignoring vanilla's format that didn't even fallow their own rules that were set in 1.10.2+. They fixed it in 1.13 to what forge users had been using for a while -
Why does this not work for entities anymore? EntityName = I18n.translateToLocal("entity." + s + ".name"); In 1.12 there is no lowercase even though the mob ids changed to lowercase for minecraft so it wasn't working. Ignoring vanilla here is my fix: translate by entity.modid.mobname.name and if that fails try entity.mobname.name even though second format should be impossible in 1.10.2+ not ignoring vanilla. if resource location is minecraft capitalize first mobname. Solved(issue was not using EntityList.getEntityString(entity) here is full proper translation of an entity method: TransLateEntity(NBTTagCompound nbt,World w) https://gist.github.com/jredfox/e819f0ad29e9b52e33392781e745c99b
-
So it's forges stuff they need to update the new mappings then? I mean I don't need them just throwing them out there that there were no srg names for them
-
Well It appears that downloading the latest mdk and ruining a new dev didn't download anything higher then that snapshot. ran both command eclipse and setupDecompWorkspace in a new mdk. So I can't verify if anything is missing or not. I can't update the mappings if setting up up latest mdk doesn't update them for me.
-
I am not 100% sure it they are in a different file but, I have found missing mappings that are not in forge but, are in mcpbot data exports here is the full list I ran a program comparing forges mcp-srg.srg and mcpbot https://pastebin.com/psSMJNFT Checked Missing mappings with mcp-srg.srg you can manually serch for the srg names but, they are not there the snapshot is 20171003 Since I am not sure if this is a bug or not and if all of these got fixed in latest forge so I am submitting this here
-
Ok my formatted has been completed I can now use csv mappings by calling the class and deob name https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/minecraft-tools/2892343-srg-to-csv-converter
-
you need to compile the jar by putting the jar:{} or something like that and then in that put the compile tags. I could never find a good explanation on how it works so I used hard coded version to compile the dependencies.
-
No thanks I will make a reformatter program. It will take joined.srg,fields.csv,methods.csv and output two files fields_map.csve and fields_map.csve. CSVE is my library that expands on csv alowing you to define variables to call later in the csv file. Not sure if it was already suppose to be there but, it's not in java so wrote up my own code. I heard there was another way but, I can't seem to find out what it was Input class and deobfuscated variable name then based on the environment return string of field/method
-
joined.srg is this what I am looking for does it contain all fields methods and parameters? FD: abo/at net/minecraft/entity/projectile/EntityThrowable/field_85053_h Edit: it appears all fields are there but, are missing mappings of parameters where do I find classes of obfuscated parameters? I could get classes from everything else via joins.srg
-
leads to nothing irc://irc.esper.net/mcpbot