Draco18s Posted May 17, 2013 Posted May 17, 2013 I'm trying to create a block that causes the player to suffocate (with a breath meter) but which doesn't allow the player to swim "up" in it. Currently both of these functions are handled exclusively by the block's material type. //EntityLiving.java If(Material == Material.water) { breath goes down } else { reset to full } If(Material == Material.water) { allow swimming } So while my block can get and set the player's air value, because my block's material is-not-water, the EntityPlayer just resets it to 300 anyway. But if I use Material.water as my block's material, the player is allowed to swim in it (various forms of negating the swimming have been tried, to much amusement). Suggestions? Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
tuskiomi Posted May 17, 2013 Posted May 17, 2013 xmaybe make your own material, just copy water but screw it up a little? or maybe make an oncollide (or something simmilar, can't remember) with 2 double varibles 1 = last Y pos 2 = current Y pos if(1 < 2 && 2 != 0xF) { move the player back down;} else{//whatever you want} 1 = 2; 2 = 0xF; Quote Also, I should have you know that you are reading my signature.
Draco18s Posted May 17, 2013 Author Posted May 17, 2013 xmaybe make your own material, just copy water but screw it up a little? Won't work. Drowning is entirely tied to Material.water. or maybe make an oncollide (or something simmilar, can't remember) with 2 double varibles 1 = last Y pos 2 = current Y pos if(1 < 2 && 2 != 0xF) { move the player back down;} else{//whatever you want} 1 = 2; 2 = 0xF; That is exactly what resulted in flinging me to Y=10,000,000 Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Chibill Posted May 17, 2013 Posted May 17, 2013 Make a material that is like water with the propertys you want and without that ones you don't. Quote
Draco18s Posted May 17, 2013 Author Posted May 17, 2013 Make a material that is like water with the propertys you want and without that ones you don't. WATER AS A MATERIAL IS NOT RESPONSIBLE FOR THE DESIRED BEHAVIOR. How many times do I have to say that? EntityLiving is responsible for the desired behavior: if (this.isEntityAlive() && this.isInsideOfMaterial(Material.water) && !this.canBreatheUnderwater() && !this.activePotionsMap.containsKey(Integer.valueOf(Potion.waterBreathing.id)) && !flag) { this.setAir(this.decreaseAirSupply(this.getAir())); Note how it references Material.water. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Mew Posted May 17, 2013 Posted May 17, 2013 Hmm... I was wondering, could you maybe make an invisible replica of the player entity that has these set attributes? Then, when you needed to use those attributes, switch out the EntityPlayer to your "clone"? Then once that action has been performed, reverts back to that EntityPlayer that was originally used? Quote I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes. I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there
Draco18s Posted May 17, 2013 Author Posted May 17, 2013 Hmm... I was wondering, could you maybe make an invisible replica of the player entity that has these set attributes? Then, when you needed to use those attributes, switch out the EntityPlayer to your "clone"? Then once that action has been performed, reverts back to that EntityPlayer that was originally used? No, because it's update function will still revert the breath bar to full. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Mew Posted May 17, 2013 Posted May 17, 2013 I believe I didn't explain my idea well enough. And it would also require a core mod to be made. have you tried making a function that "Mirrors" the normal function? Then mirror everything else that is needed for it and such? Though this will also probably require either a base edit or a core mod. Quote I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes. I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there
Draco18s Posted May 17, 2013 Author Posted May 17, 2013 I believe I didn't explain my idea well enough. And it would also require a core mod to be made. If I wanted to do a core mod, I'd simply fix the existing EntityLiving class so that it checks for material properties rather than seeing if the material is water (same thing with item frames using "is the item in my inventory exactly equal to Item.map" instead of "is the item in my inventory isMap?".[1] have you tried making a function that "Mirrors" the normal function? Then mirror everything else that is needed for it and such? Though this will also probably require either a base edit or a core mod. Explain better. But if it has to be a base edit or core mod, see above. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.