mirror of
https://github.com/chylex/Hardcore-Ender-Expansion-2.git
synced 2025-09-15 14:32:09 +02:00
Compare commits
23 Commits
Author | SHA1 | Date | |
---|---|---|---|
32ea34fa0c | |||
2ab4659da5 | |||
276df76979 | |||
14788dd9ad | |||
5b69abf29e | |||
dd6f4fa4d1 | |||
414b11aa0d | |||
14fbcac4e0 | |||
3e0aedc039 | |||
20c21f9afa | |||
f4fac58b32 | |||
f21a4fbf3f | |||
c9ad94bcb4 | |||
1a11754bad | |||
421cadb545 | |||
596042b255 | |||
f4bfd0f8e3 | |||
373087e33c | |||
a46524e518 | |||
ecd48ec345 | |||
8c21bcad67 | |||
7b54a8885a | |||
e587f212eb |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -14,6 +14,7 @@ out
|
|||||||
!.idea/kotlinc.xml
|
!.idea/kotlinc.xml
|
||||||
!.idea/statistic.xml
|
!.idea/statistic.xml
|
||||||
!.idea/vcs.xml
|
!.idea/vcs.xml
|
||||||
|
!.idea/shelf
|
||||||
|
|
||||||
# eclipse
|
# eclipse
|
||||||
bin
|
bin
|
||||||
|
2
.idea/gradle.xml
generated
2
.idea/gradle.xml
generated
@@ -4,6 +4,8 @@
|
|||||||
<component name="GradleSettings">
|
<component name="GradleSettings">
|
||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
|
<option name="delegatedBuild" value="true" />
|
||||||
|
<option name="testRunner" value="GRADLE" />
|
||||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
|
1
.idea/misc.xml
generated
1
.idea/misc.xml
generated
@@ -14,7 +14,6 @@
|
|||||||
<item index="9" class="java.lang.String" itemvalue="net.minecraftforge.fml.relauncher.IFMLLoadingPlugin.Name" />
|
<item index="9" class="java.lang.String" itemvalue="net.minecraftforge.fml.relauncher.IFMLLoadingPlugin.Name" />
|
||||||
</list>
|
</list>
|
||||||
</component>
|
</component>
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
|
||||||
<component name="FrameworkDetectionExcludesConfiguration">
|
<component name="FrameworkDetectionExcludesConfiguration">
|
||||||
<file type="web" url="file://$PROJECT_DIR$" />
|
<file type="web" url="file://$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
|
4
.idea/shelf/Datagen_Recipes.xml
generated
Normal file
4
.idea/shelf/Datagen_Recipes.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Datagen_Recipes" date="1601734824200" recycled="true">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Datagen_Recipes/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Datagen Recipes" />
|
||||||
|
</changelist>
|
79
.idea/shelf/Datagen_Recipes/shelved.patch
generated
Normal file
79
.idea/shelf/Datagen_Recipes/shelved.patch
generated
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
Index: data/src/main/java/chylex/hee/datagen/DataGen.kt
|
||||||
|
IDEA additional info:
|
||||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
|
||||||
|
<+>package chylex.hee.datagen\nimport chylex.hee.HEE\nimport chylex.hee.datagen.client.BlockItemModels\nimport chylex.hee.datagen.client.BlockModels\nimport chylex.hee.datagen.client.BlockStates\nimport chylex.hee.datagen.client.ItemModels\nimport chylex.hee.system.forge.SubscribeAllEvents\nimport chylex.hee.system.forge.SubscribeEvent\nimport net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus.MOD\nimport net.minecraftforge.fml.event.lifecycle.GatherDataEvent\n\n@SubscribeAllEvents(modid = HEE.ID, bus = MOD)\nobject DataGen{\n\t@SubscribeEvent\n\tfun register(e: GatherDataEvent){\n\t\tval modid = HEE.ID\n\t\tval helper = e.existingFileHelper\n\t\t\n\t\twith(e.generator){\n\t\t\tif (e.includeClient()){\n\t\t\t\taddProvider(BlockStates(this, modid, helper))\n\t\t\t\taddProvider(BlockModels(this, modid, helper))\n\t\t\t\taddProvider(BlockItemModels(this, modid, helper))\n\t\t\t\taddProvider(ItemModels(this, modid, helper))\n\t\t\t}\n\t\t}\n\t}\n}\n
|
||||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||||
|
<+>UTF-8
|
||||||
|
===================================================================
|
||||||
|
--- a/data/src/main/java/chylex/hee/datagen/DataGen.kt (revision f8888e0a3b33898551301124a0879cea12fc1f06)
|
||||||
|
+++ b/data/src/main/java/chylex/hee/datagen/DataGen.kt (date 1601732788951)
|
||||||
|
@@ -4,6 +4,7 @@
|
||||||
|
import chylex.hee.datagen.client.BlockModels
|
||||||
|
import chylex.hee.datagen.client.BlockStates
|
||||||
|
import chylex.hee.datagen.client.ItemModels
|
||||||
|
+import chylex.hee.datagen.server.Recipes
|
||||||
|
import chylex.hee.system.forge.SubscribeAllEvents
|
||||||
|
import chylex.hee.system.forge.SubscribeEvent
|
||||||
|
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus.MOD
|
||||||
|
@@ -23,6 +24,10 @@
|
||||||
|
addProvider(BlockItemModels(this, modid, helper))
|
||||||
|
addProvider(ItemModels(this, modid, helper))
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ if (e.includeServer()){
|
||||||
|
+ addProvider(Recipes(this))
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Index: data/src/main/java/chylex/hee/datagen/server/Recipes.kt
|
||||||
|
IDEA additional info:
|
||||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||||
|
<+>UTF-8
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null (date 1601733265753)
|
||||||
|
+++ b/data/src/main/java/chylex/hee/datagen/server/Recipes.kt (date 1601733265753)
|
||||||
|
@@ -0,0 +1,15 @@
|
||||||
|
+package chylex.hee.datagen.server
|
||||||
|
+import chylex.hee.datagen.server.util.ingredients
|
||||||
|
+import chylex.hee.datagen.server.util.shapeless
|
||||||
|
+import chylex.hee.init.ModItems
|
||||||
|
+import net.minecraft.data.DataGenerator
|
||||||
|
+import net.minecraft.data.IFinishedRecipe
|
||||||
|
+import net.minecraft.data.RecipeProvider
|
||||||
|
+import net.minecraft.item.Items
|
||||||
|
+import java.util.function.Consumer
|
||||||
|
+
|
||||||
|
+class Recipes(generator: DataGenerator) : RecipeProvider(generator){
|
||||||
|
+ override fun registerRecipes(consumer: Consumer<IFinishedRecipe>) = with(consumer){
|
||||||
|
+ shapeless(ModItems.ALTERATION_NEXUS, 1){ ingredients(Items.DIAMOND, Items.ENDER_EYE, ModItems.ANCIENT_DUST, ModItems.ETHEREUM) }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
Index: data/src/main/java/chylex/hee/datagen/server/util/RecipeProviderExt.kt
|
||||||
|
IDEA additional info:
|
||||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||||
|
<+>UTF-8
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null (date 1601733249382)
|
||||||
|
+++ b/data/src/main/java/chylex/hee/datagen/server/util/RecipeProviderExt.kt (date 1601733249382)
|
||||||
|
@@ -0,0 +1,20 @@
|
||||||
|
+package chylex.hee.datagen.server.util
|
||||||
|
+import net.minecraft.data.IFinishedRecipe
|
||||||
|
+import net.minecraft.data.ShapedRecipeBuilder
|
||||||
|
+import net.minecraft.data.ShapelessRecipeBuilder
|
||||||
|
+import net.minecraft.util.IItemProvider
|
||||||
|
+import java.util.function.Consumer
|
||||||
|
+
|
||||||
|
+fun Consumer<IFinishedRecipe>.shaped(result: IItemProvider, amount: Int, callback: ShapedRecipeBuilder.() -> Unit){
|
||||||
|
+ ShapedRecipeBuilder(result, amount).apply(callback).build(this)
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+fun Consumer<IFinishedRecipe>.shapeless(result: IItemProvider, amount: Int, callback: ShapelessRecipeBuilder.() -> Unit){
|
||||||
|
+ ShapelessRecipeBuilder(result, amount).apply(callback).build(this)
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+fun ShapelessRecipeBuilder.ingredients(vararg ingredients: IItemProvider){
|
||||||
|
+ for(ingredient in ingredients){
|
||||||
|
+ this.addIngredient(ingredient)
|
||||||
|
+ }
|
||||||
|
+}
|
4
.idea/shelf/Development3.xml
generated
Normal file
4
.idea/shelf/Development3.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Development3" date="1601983889370" recycled="true">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Development3/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Development" />
|
||||||
|
</changelist>
|
18
.idea/shelf/Development3/shelved.patch
generated
Normal file
18
.idea/shelf/Development3/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
4
.idea/shelf/Dust.xml
generated
Normal file
4
.idea/shelf/Dust.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Dust" date="1590783410567" recycled="false">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Dust/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Dust" />
|
||||||
|
</changelist>
|
210
.idea/shelf/Dust/shelved.patch
generated
Normal file
210
.idea/shelf/Dust/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
4
.idea/shelf/EnderEyeAttack_kt.xml
generated
Normal file
4
.idea/shelf/EnderEyeAttack_kt.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="EnderEyeAttack_kt" date="1601761992769" recycled="true">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/EnderEyeAttack_kt/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="EnderEyeAttack.kt" />
|
||||||
|
</changelist>
|
32
.idea/shelf/EnderEyeAttack_kt/shelved.patch
generated
Normal file
32
.idea/shelf/EnderEyeAttack_kt/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
4
.idea/shelf/Ender_Eye.xml
generated
Normal file
4
.idea/shelf/Ender_Eye.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Ender_Eye" date="1595119986895" recycled="true">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Ender_Eye/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Ender Eye" />
|
||||||
|
</changelist>
|
69
.idea/shelf/Ender_Eye/shelved.patch
generated
Normal file
69
.idea/shelf/Ender_Eye/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
4
.idea/shelf/Ender_Eye_Stuff.xml
generated
Normal file
4
.idea/shelf/Ender_Eye_Stuff.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Ender_Eye_Stuff" date="1601351827334" recycled="true">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Ender_Eye_Stuff/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Ender Eye Stuff" />
|
||||||
|
</changelist>
|
172
.idea/shelf/Ender_Eye_Stuff/shelved.patch
generated
Normal file
172
.idea/shelf/Ender_Eye_Stuff/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
4
.idea/shelf/Eye.xml
generated
Normal file
4
.idea/shelf/Eye.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Eye" date="1605472809585" recycled="true">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Eye/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Eye" />
|
||||||
|
</changelist>
|
723
.idea/shelf/Eye/shelved.patch
generated
Normal file
723
.idea/shelf/Eye/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
4
.idea/shelf/Ideas.xml
generated
Normal file
4
.idea/shelf/Ideas.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Ideas" date="1595089578362" recycled="false">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Ideas/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Ideas" />
|
||||||
|
</changelist>
|
54
.idea/shelf/Ideas/shelved.patch
generated
Normal file
54
.idea/shelf/Ideas/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
4
.idea/shelf/Later.xml
generated
Normal file
4
.idea/shelf/Later.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Later" date="1579750352473" recycled="false">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Later/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Later" />
|
||||||
|
</changelist>
|
36
.idea/shelf/Later/shelved.patch
generated
Normal file
36
.idea/shelf/Later/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
4
.idea/shelf/Later1.xml
generated
Normal file
4
.idea/shelf/Later1.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Later1" date="1607753523089" recycled="true">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Later1/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Later" />
|
||||||
|
</changelist>
|
81
.idea/shelf/Later1/shelved.patch
generated
Normal file
81
.idea/shelf/Later1/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
4
.idea/shelf/Later2.xml
generated
Normal file
4
.idea/shelf/Later2.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Later2" date="1610732422264" recycled="false">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Later2/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Later" />
|
||||||
|
</changelist>
|
19
.idea/shelf/Later2/shelved.patch
generated
Normal file
19
.idea/shelf/Later2/shelved.patch
generated
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
Index: src/system/src/main/java/chylex/hee/game/entity/EntitySelector.kt
|
||||||
|
IDEA additional info:
|
||||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
|
||||||
|
<+>package chylex.hee.game.entity\n\nimport chylex.hee.system.math.square\nimport net.minecraft.entity.Entity\nimport net.minecraft.util.math.AxisAlignedBB\nimport net.minecraft.util.math.Vec3d\nimport net.minecraft.world.IEntityReader\nimport java.util.function.Predicate\n\n@Suppress(\"NOTHING_TO_INLINE\")\nclass EntitySelector(private val world: IEntityReader, private val predicate: Predicate<in Entity>) {\n\tfun <T : Entity> inBox(cls: Class<T>, aabb: AxisAlignedBB): List<T> {\n\t\treturn world.getEntitiesWithinAABB(cls, aabb, predicate)\n\t}\n\t\n\tfun <T : Entity> inRange(cls: Class<T>, point: Vec3d, range: Double): List<T> {\n\t\tval aabb = AxisAlignedBB(point.x - range, point.y - range, point.z - range, point.x + range, point.y + range, point.z + range)\n\t\tval rangeSq = square(range)\n\t\t\n\t\treturn world.getEntitiesWithinAABB(cls, aabb) { predicate.test(it) && it!!.posVec.squareDistanceTo(point) <= rangeSq }\n\t}\n\t\n\t// Reified\n\t\n\tinline fun <reified T : Entity> inBox(aabb: AxisAlignedBB) = inBox(T::class.java, aabb)\n\tinline fun <reified T : Entity> inRange(point: Vec3d, range: Double) = inRange(T::class.java, point, range)\n\t\n\t// General\n\t\n\tinline fun allInBox(aabb: AxisAlignedBB) = inBox(Entity::class.java, aabb)\n\tinline fun allInRange(point: Vec3d, range: Double) = inRange(Entity::class.java, point, range)\n}\n
|
||||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||||
|
<+>UTF-8
|
||||||
|
===================================================================
|
||||||
|
diff --git a/src/system/src/main/java/chylex/hee/game/entity/EntitySelector.kt b/src/system/src/main/java/chylex/hee/game/entity/EntitySelector.kt
|
||||||
|
--- a/src/system/src/main/java/chylex/hee/game/entity/EntitySelector.kt (revision 276df769798cbd4fd8154c5ebca0001dd8639545)
|
||||||
|
+++ b/src/system/src/main/java/chylex/hee/game/entity/EntitySelector.kt (date 1609259090000)
|
||||||
|
@@ -20,6 +20,8 @@
|
||||||
|
return world.getEntitiesWithinAABB(cls, aabb) { predicate.test(it) && it!!.posVec.squareDistanceTo(point) <= rangeSq }
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // TODO only loaded? fuck
|
||||||
|
+
|
||||||
|
// Reified
|
||||||
|
|
||||||
|
inline fun <reified T : Entity> inBox(aabb: AxisAlignedBB) = inBox(T::class.java, aabb)
|
4
.idea/shelf/Recipe_Datagen.xml
generated
Normal file
4
.idea/shelf/Recipe_Datagen.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Recipe_Datagen" date="1601740449134" recycled="false">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Recipe_Datagen/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Recipe Datagen" />
|
||||||
|
</changelist>
|
47
.idea/shelf/Recipe_Datagen/shelved.patch
generated
Normal file
47
.idea/shelf/Recipe_Datagen/shelved.patch
generated
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
Index: data/src/main/java/chylex/hee/datagen/server/Recipes.kt
|
||||||
|
IDEA additional info:
|
||||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||||
|
<+>UTF-8
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null (date 1601740133630)
|
||||||
|
+++ b/data/src/main/java/chylex/hee/datagen/server/Recipes.kt (date 1601740133630)
|
||||||
|
@@ -0,0 +1,11 @@
|
||||||
|
+package chylex.hee.datagen.server
|
||||||
|
+import net.minecraft.data.DataGenerator
|
||||||
|
+import net.minecraft.data.IFinishedRecipe
|
||||||
|
+import net.minecraft.data.RecipeProvider
|
||||||
|
+import java.util.function.Consumer
|
||||||
|
+
|
||||||
|
+class Recipes(generator: DataGenerator) : RecipeProvider(generator){
|
||||||
|
+ override fun registerRecipes(consumer: Consumer<IFinishedRecipe>) = with(consumer){
|
||||||
|
+ // shapeless(ModItems.ALTERATION_NEXUS, 1){ ingredients(Items.DIAMOND, Items.ENDER_EYE, ModItems.ANCIENT_DUST, ModItems.ETHEREUM) }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
Index: data/src/main/java/chylex/hee/datagen/server/util/RecipeProviderExt.kt
|
||||||
|
IDEA additional info:
|
||||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||||
|
<+>UTF-8
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null (date 1601734823610)
|
||||||
|
+++ b/data/src/main/java/chylex/hee/datagen/server/util/RecipeProviderExt.kt (date 1601734823610)
|
||||||
|
@@ -0,0 +1,20 @@
|
||||||
|
+package chylex.hee.datagen.server.util
|
||||||
|
+import net.minecraft.data.IFinishedRecipe
|
||||||
|
+import net.minecraft.data.ShapedRecipeBuilder
|
||||||
|
+import net.minecraft.data.ShapelessRecipeBuilder
|
||||||
|
+import net.minecraft.util.IItemProvider
|
||||||
|
+import java.util.function.Consumer
|
||||||
|
+
|
||||||
|
+fun Consumer<IFinishedRecipe>.shaped(result: IItemProvider, amount: Int, callback: ShapedRecipeBuilder.() -> Unit){
|
||||||
|
+ ShapedRecipeBuilder(result, amount).apply(callback).build(this)
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+fun Consumer<IFinishedRecipe>.shapeless(result: IItemProvider, amount: Int, callback: ShapelessRecipeBuilder.() -> Unit){
|
||||||
|
+ ShapelessRecipeBuilder(result, amount).apply(callback).build(this)
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+fun ShapelessRecipeBuilder.ingredients(vararg ingredients: IItemProvider){
|
||||||
|
+ for(ingredient in ingredients){
|
||||||
|
+ this.addIngredient(ingredient)
|
||||||
|
+ }
|
||||||
|
+}
|
4
.idea/shelf/Shulker_Box_Animation.xml
generated
Normal file
4
.idea/shelf/Shulker_Box_Animation.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Shulker_Box_Animation" date="1590248312609" recycled="false">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Shulker_Box_Animation/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Shulker Box Animation" />
|
||||||
|
</changelist>
|
228
.idea/shelf/Shulker_Box_Animation/shelved.patch
generated
Normal file
228
.idea/shelf/Shulker_Box_Animation/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
4
.idea/shelf/StructureFile.xml
generated
Normal file
4
.idea/shelf/StructureFile.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="StructureFile" date="1601888541958" recycled="true">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/StructureFile/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="StructureFile" />
|
||||||
|
</changelist>
|
19
.idea/shelf/StructureFile/shelved.patch
generated
Normal file
19
.idea/shelf/StructureFile/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
4
.idea/shelf/TODO.xml
generated
Normal file
4
.idea/shelf/TODO.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="TODO" date="1601072216412" recycled="false">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/TODO/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="TODO" />
|
||||||
|
</changelist>
|
124
.idea/shelf/TODO/shelved.patch
generated
Normal file
124
.idea/shelf/TODO/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
14
.idea/shelf/Territories.xml
generated
Normal file
14
.idea/shelf/Territories.xml
generated
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<changelist name="Territories" date="1593174807954" recycled="false">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Territories/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Territories" />
|
||||||
|
<binary>
|
||||||
|
<option name="BEFORE_PATH" />
|
||||||
|
<option name="AFTER_PATH" value="src/main/resources/assets/hee/textures/environment/end_sky_blurry.png" />
|
||||||
|
<option name="SHELVED_PATH" value="$PROJECT_DIR$/.idea/shelf/Territories/end_sky_blurry.png" />
|
||||||
|
</binary>
|
||||||
|
<binary>
|
||||||
|
<option name="BEFORE_PATH" />
|
||||||
|
<option name="AFTER_PATH" value="src/main/resources/assets/hee/textures/environment/end_sky_smooth.png" />
|
||||||
|
<option name="SHELVED_PATH" value="$PROJECT_DIR$/.idea/shelf/Territories/end_sky_smooth.png" />
|
||||||
|
</binary>
|
||||||
|
</changelist>
|
BIN
.idea/shelf/Territories/end_sky_blurry.png
generated
Normal file
BIN
.idea/shelf/Territories/end_sky_blurry.png
generated
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 KiB |
BIN
.idea/shelf/Territories/end_sky_smooth.png
generated
Normal file
BIN
.idea/shelf/Territories/end_sky_smooth.png
generated
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.9 KiB |
24
.idea/shelf/Territories/shelved.patch
generated
Normal file
24
.idea/shelf/Territories/shelved.patch
generated
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
Index: src/main/java/chylex/hee/game/block/BlockDustyStoneUnstable.kt
|
||||||
|
IDEA additional info:
|
||||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||||
|
<+>UTF-8
|
||||||
|
===================================================================
|
||||||
|
--- a/src/main/java/chylex/hee/game/block/BlockDustyStoneUnstable.kt (revision f6f631f6f3dc9b347b19db913cf2be4535813fc7)
|
||||||
|
+++ b/src/main/java/chylex/hee/game/block/BlockDustyStoneUnstable.kt (date 1590584304217)
|
||||||
|
@@ -26,7 +26,6 @@
|
||||||
|
import net.minecraft.util.math.shapes.EntitySelectionContext
|
||||||
|
import net.minecraft.util.math.shapes.ISelectionContext
|
||||||
|
import net.minecraft.util.math.shapes.VoxelShape
|
||||||
|
-import net.minecraft.util.math.shapes.VoxelShapes
|
||||||
|
import net.minecraft.world.IBlockReader
|
||||||
|
import net.minecraft.world.World
|
||||||
|
import java.util.Random
|
||||||
|
@@ -68,7 +67,7 @@
|
||||||
|
return if (context is EntitySelectionContext && context.entity is EntityLivingBase)
|
||||||
|
MagicValues.BLOCK_COLLISION_SHRINK_SHAPE
|
||||||
|
else
|
||||||
|
- VoxelShapes.fullCube()
|
||||||
|
+ MagicValues.BLOCK_COLLISION_SHRINK_SHAPE //VoxelShapes.fullCube()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun causesSuffocation(state: BlockState, world: IBlockReader, pos: BlockPos): Boolean{
|
BIN
.idea/shelf/Territories1/end_sky_blurry.png
generated
Normal file
BIN
.idea/shelf/Territories1/end_sky_blurry.png
generated
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 KiB |
BIN
.idea/shelf/Territories1/end_sky_smooth.png
generated
Normal file
BIN
.idea/shelf/Territories1/end_sky_smooth.png
generated
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.9 KiB |
119
.idea/shelf/Territories1/shelved.patch
generated
Normal file
119
.idea/shelf/Territories1/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
326
.idea/shelf/Work_on_Ender_Eye_spawn_animation,_movement,_and_attack_logic/shelved.patch
generated
Normal file
326
.idea/shelf/Work_on_Ender_Eye_spawn_animation,_movement,_and_attack_logic/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
4
.idea/shelf/Work_on_Ender_Eye_spawn_animation__movement__and_attack_logic.xml
generated
Normal file
4
.idea/shelf/Work_on_Ender_Eye_spawn_animation__movement__and_attack_logic.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="Work_on_Ender_Eye_spawn_animation,_movement,_and_attack_logic" date="1601092950910" recycled="true">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Work_on_Ender_Eye_spawn_animation,_movement,_and_attack_logic/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="Work on Ender Eye spawn animation, movement, and attack logic" />
|
||||||
|
</changelist>
|
4
.idea/shelf/thing.xml
generated
Normal file
4
.idea/shelf/thing.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="thing" date="1608060366436" recycled="false">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/thing/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="thing" />
|
||||||
|
</changelist>
|
74
.idea/shelf/thing/shelved.patch
generated
Normal file
74
.idea/shelf/thing/shelved.patch
generated
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
Index: src/main/resources/hee.mixins.json
|
||||||
|
IDEA additional info:
|
||||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
|
||||||
|
<+>{\n \"required\": true,\n \"minVersion\": \"0.8\",\n \"package\": \"chylex.hee.mixin\",\n \"compatibilityLevel\": \"JAVA_8\",\n \"mixins\": [\n \"HookAnvilRepair\",\n \"HookBlockDrops\",\n \"HookChorusFlowerSoil\",\n \"HookChorusPlantSoil\",\n \"HookEffectCorruption\",\n \"HookEffectInstanceCorruption\",\n \"HookEndBiome\",\n \"HookEndermanParticles\",\n \"HookEndermiteParticles\",\n \"HookEntityHelmetBreaking\",\n \"HookEntityPotionCorruption\",\n \"HookFireSpread\",\n \"HookItemEntityLavaCheck\",\n \"HookLightMapColors\",\n \"HookPlayerInventoryArmorBreaking\",\n \"HookPotionCreativeMenu\",\n \"HookThornsArmorBreaking\"\n ],\n \"injectors\": {\n \"defaultRequire\": 1\n }\n}\n
|
||||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||||
|
<+>UTF-8
|
||||||
|
===================================================================
|
||||||
|
diff --git a/src/main/resources/hee.mixins.json b/src/main/resources/hee.mixins.json
|
||||||
|
--- a/src/main/resources/hee.mixins.json (revision 7f9202bceb9aa7b8fac24437a2190a87857573a7)
|
||||||
|
+++ b/src/main/resources/hee.mixins.json (date 1608060366293)
|
||||||
|
@@ -3,25 +3,7 @@
|
||||||
|
"minVersion": "0.8",
|
||||||
|
"package": "chylex.hee.mixin",
|
||||||
|
"compatibilityLevel": "JAVA_8",
|
||||||
|
- "mixins": [
|
||||||
|
- "HookAnvilRepair",
|
||||||
|
- "HookBlockDrops",
|
||||||
|
- "HookChorusFlowerSoil",
|
||||||
|
- "HookChorusPlantSoil",
|
||||||
|
- "HookEffectCorruption",
|
||||||
|
- "HookEffectInstanceCorruption",
|
||||||
|
- "HookEndBiome",
|
||||||
|
- "HookEndermanParticles",
|
||||||
|
- "HookEndermiteParticles",
|
||||||
|
- "HookEntityHelmetBreaking",
|
||||||
|
- "HookEntityPotionCorruption",
|
||||||
|
- "HookFireSpread",
|
||||||
|
- "HookItemEntityLavaCheck",
|
||||||
|
- "HookLightMapColors",
|
||||||
|
- "HookPlayerInventoryArmorBreaking",
|
||||||
|
- "HookPotionCreativeMenu",
|
||||||
|
- "HookThornsArmorBreaking"
|
||||||
|
- ],
|
||||||
|
+ "mixins": [ "HookAnvilRepair", "HookBlockDrops", "HookChorusFlowerSoil", "HookChorusPlantSoil", "HookEffectCorruption", "HookEffectInstanceCorruption", "HookElytraBreaking", "HookEndBiome", "HookEndermanParticles", "HookEndermiteParticles", "HookEntityHelmetBreaking", "HookEntityPotionCorruption", "HookFireSpread", "HookItemEntityLavaCheck", "HookLightMapColors", "HookPlayerInventoryArmorBreaking", "HookPotionCreativeMenu", "HookThornsArmorBreaking" ],
|
||||||
|
"injectors": {
|
||||||
|
"defaultRequire": 1
|
||||||
|
}
|
||||||
|
Index: src/main/java/chylex/hee/mixin/HookElytraBreaking.java
|
||||||
|
IDEA additional info:
|
||||||
|
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||||
|
<+>UTF-8
|
||||||
|
===================================================================
|
||||||
|
diff --git a/src/main/java/chylex/hee/mixin/HookElytraBreaking.java b/src/main/java/chylex/hee/mixin/HookElytraBreaking.java
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null (date 1608060322378)
|
||||||
|
+++ b/src/main/java/chylex/hee/mixin/HookElytraBreaking.java (date 1608060322378)
|
||||||
|
@@ -0,0 +1,27 @@
|
||||||
|
+package chylex.hee.mixin;
|
||||||
|
+
|
||||||
|
+import chylex.hee.init.ModItems;
|
||||||
|
+import net.minecraft.entity.LivingEntity;
|
||||||
|
+import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
+import net.minecraft.item.ElytraItem;
|
||||||
|
+import net.minecraft.item.ItemStack;
|
||||||
|
+import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
+import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
+import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
|
+import java.util.function.Consumer;
|
||||||
|
+
|
||||||
|
+@Mixin(ElytraItem.class)
|
||||||
|
+public abstract class HookElytraBreaking{
|
||||||
|
+ @Redirect(
|
||||||
|
+ method = "elytraFlightTick",
|
||||||
|
+ at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;damageItem(ILnet/minecraft/entity/LivingEntity;Ljava/util/function/Consumer;)V")
|
||||||
|
+ )
|
||||||
|
+ public void damageItem(final ItemStack stack, final int amount, final LivingEntity entity, final Consumer<LivingEntity> onBroken){
|
||||||
|
+ final ItemStack originalStack = stack.copy();
|
||||||
|
+ stack.damageItem(amount, entity, onBroken);
|
||||||
|
+
|
||||||
|
+ if (ElytraItem.isUsable(originalStack) && !ElytraItem.isUsable(stack) && entity instanceof PlayerEntity){
|
||||||
|
+ ModItems.RING_OF_PRESERVATION.onArmorDestroyed((PlayerEntity)entity, originalStack, stack);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
4
.idea/shelf/todo1.xml
generated
Normal file
4
.idea/shelf/todo1.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<changelist name="todo1" date="1601711471885" recycled="true">
|
||||||
|
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/todo1/shelved.patch" />
|
||||||
|
<option name="DESCRIPTION" value="todo" />
|
||||||
|
</changelist>
|
182
.idea/shelf/todo1/shelved.patch
generated
Normal file
182
.idea/shelf/todo1/shelved.patch
generated
Normal file
File diff suppressed because one or more lines are too long
@@ -1,2 +1,3 @@
|
|||||||
# Hardcore Ender Expansion 2
|
# Hardcore Ender Expansion 2
|
||||||
|
|
||||||
Work in progress. PRs will not be accepted before release.
|
Work in progress. PRs will not be accepted before release.
|
||||||
|
20
build.gradle
20
build.gradle
@@ -1,8 +1,8 @@
|
|||||||
ext {
|
ext {
|
||||||
mc_version = "1.16.4"
|
mc_version = "1.15.2"
|
||||||
forge_version = "35.1.2"
|
forge_version = "31.2.45"
|
||||||
mapping_version = "20201028-1.16.3"
|
mapping_version = "20200626-1.15.1"
|
||||||
kotlin_mod_version = "1.6.2"
|
kotlin_mod_version = "1.6.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
@@ -49,8 +49,16 @@ archivesBaseName = metaName.replaceAll("\\s", "")
|
|||||||
|
|
||||||
idea {
|
idea {
|
||||||
module {
|
module {
|
||||||
[".idea", ".settings", ".classpath", ".project", "gradle", "out", "run"].each {
|
[".idea", ".settings", ".gradle", "build", "gradle", "out", "run", "src/main/kotlin", "src/test/kotlin"].each {
|
||||||
excludeDirs << file(it)
|
excludeDirs += file(it)
|
||||||
|
}
|
||||||
|
|
||||||
|
["out", "src/main/kotlin", "src/test/kotlin"].each {
|
||||||
|
excludeDirs += file("src/system/" + it)
|
||||||
|
}
|
||||||
|
|
||||||
|
["src/main/kotlin", "src/test/kotlin"].each {
|
||||||
|
excludeDirs += file("data/" + it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen
|
package chylex.hee.datagen
|
||||||
|
|
||||||
import chylex.hee.HEE
|
import chylex.hee.HEE
|
||||||
import chylex.hee.datagen.client.BlockItemModels
|
import chylex.hee.datagen.client.BlockItemModels
|
||||||
import chylex.hee.datagen.client.BlockModels
|
import chylex.hee.datagen.client.BlockModels
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen
|
package chylex.hee.datagen
|
||||||
|
|
||||||
import chylex.hee.HEE
|
import chylex.hee.HEE
|
||||||
import chylex.hee.system.facades.Resource
|
import chylex.hee.system.facades.Resource
|
||||||
import net.minecraft.block.Block
|
import net.minecraft.block.Block
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen.client
|
package chylex.hee.datagen.client
|
||||||
|
|
||||||
import chylex.hee.datagen.client.util.block
|
import chylex.hee.datagen.client.util.block
|
||||||
import chylex.hee.datagen.client.util.multi
|
import chylex.hee.datagen.client.util.multi
|
||||||
import chylex.hee.datagen.client.util.override
|
import chylex.hee.datagen.client.util.override
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen.client
|
package chylex.hee.datagen.client
|
||||||
|
|
||||||
import chylex.hee.datagen.client.util.cauldron
|
import chylex.hee.datagen.client.util.cauldron
|
||||||
import chylex.hee.datagen.client.util.cross
|
import chylex.hee.datagen.client.util.cross
|
||||||
import chylex.hee.datagen.client.util.cube
|
import chylex.hee.datagen.client.util.cube
|
||||||
@@ -185,20 +186,26 @@ class BlockModels(generator: DataGenerator, modid: String, existingFileHelper: E
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
parent(ModBlocks.TABLE_BASE_TIER_1, Resource.Custom("block/table_tier_1")).then { Resource.Custom("block/transparent").let {
|
parent(ModBlocks.TABLE_BASE_TIER_1, Resource.Custom("block/table_tier_1")).then {
|
||||||
|
Resource.Custom("block/transparent").let {
|
||||||
texture("overlay_top", it)
|
texture("overlay_top", it)
|
||||||
texture("overlay_side", it)
|
texture("overlay_side", it)
|
||||||
}}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
parent(ModBlocks.TABLE_BASE_TIER_2, Resource.Custom("block/table_tier_2")).then { Resource.Custom("block/transparent").let {
|
parent(ModBlocks.TABLE_BASE_TIER_2, Resource.Custom("block/table_tier_2")).then {
|
||||||
|
Resource.Custom("block/transparent").let {
|
||||||
texture("overlay_top", it)
|
texture("overlay_top", it)
|
||||||
texture("overlay_side", it)
|
texture("overlay_side", it)
|
||||||
}}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
parent(ModBlocks.TABLE_BASE_TIER_3, Resource.Custom("block/table_tier_3")).then { Resource.Custom("block/transparent").let {
|
parent(ModBlocks.TABLE_BASE_TIER_3, Resource.Custom("block/table_tier_3")).then {
|
||||||
|
Resource.Custom("block/transparent").let {
|
||||||
texture("overlay_top", it)
|
texture("overlay_top", it)
|
||||||
texture("overlay_side", it)
|
texture("overlay_side", it)
|
||||||
}}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
table(ModBlocks.ACCUMULATION_TABLE_TIER_1)
|
table(ModBlocks.ACCUMULATION_TABLE_TIER_1)
|
||||||
table(ModBlocks.ACCUMULATION_TABLE_TIER_2)
|
table(ModBlocks.ACCUMULATION_TABLE_TIER_2)
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen.client
|
package chylex.hee.datagen.client
|
||||||
|
|
||||||
import chylex.hee.datagen.client.util.cube
|
import chylex.hee.datagen.client.util.cube
|
||||||
import chylex.hee.datagen.client.util.log
|
import chylex.hee.datagen.client.util.log
|
||||||
import chylex.hee.datagen.client.util.pillar
|
import chylex.hee.datagen.client.util.pillar
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen.client
|
package chylex.hee.datagen.client
|
||||||
|
|
||||||
import chylex.hee.datagen.client.util.layers
|
import chylex.hee.datagen.client.util.layers
|
||||||
import chylex.hee.datagen.client.util.multi
|
import chylex.hee.datagen.client.util.multi
|
||||||
import chylex.hee.datagen.client.util.override
|
import chylex.hee.datagen.client.util.override
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen.client.util
|
package chylex.hee.datagen.client.util
|
||||||
|
|
||||||
import chylex.hee.datagen.Callback
|
import chylex.hee.datagen.Callback
|
||||||
import chylex.hee.datagen.path
|
import chylex.hee.datagen.path
|
||||||
import chylex.hee.datagen.r
|
import chylex.hee.datagen.r
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen.client.util
|
package chylex.hee.datagen.client.util
|
||||||
|
|
||||||
import chylex.hee.datagen.r
|
import chylex.hee.datagen.r
|
||||||
import chylex.hee.datagen.safeUnit
|
import chylex.hee.datagen.safeUnit
|
||||||
import chylex.hee.system.migration.BlockLog
|
import chylex.hee.system.migration.BlockLog
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen.client.util
|
package chylex.hee.datagen.client.util
|
||||||
|
|
||||||
import chylex.hee.datagen.Callback
|
import chylex.hee.datagen.Callback
|
||||||
import chylex.hee.datagen.path
|
import chylex.hee.datagen.path
|
||||||
import chylex.hee.datagen.r
|
import chylex.hee.datagen.r
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen.server
|
package chylex.hee.datagen.server
|
||||||
|
|
||||||
import chylex.hee.datagen.server.util.BlockLootTableProvider
|
import chylex.hee.datagen.server.util.BlockLootTableProvider
|
||||||
import chylex.hee.init.ModBlocks
|
import chylex.hee.init.ModBlocks
|
||||||
import chylex.hee.init.ModItems
|
import chylex.hee.init.ModItems
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen.server
|
package chylex.hee.datagen.server
|
||||||
|
|
||||||
import chylex.hee.datagen.server.util.add
|
import chylex.hee.datagen.server.util.add
|
||||||
import chylex.hee.game.block.BlockWhitebarkSapling
|
import chylex.hee.game.block.BlockWhitebarkSapling
|
||||||
import chylex.hee.init.ModBlocks
|
import chylex.hee.init.ModBlocks
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen.server
|
package chylex.hee.datagen.server
|
||||||
|
|
||||||
import chylex.hee.init.ModItems
|
import chylex.hee.init.ModItems
|
||||||
import net.minecraft.data.DataGenerator
|
import net.minecraft.data.DataGenerator
|
||||||
import net.minecraft.data.ItemTagsProvider
|
import net.minecraft.data.ItemTagsProvider
|
||||||
|
@@ -1,17 +1,18 @@
|
|||||||
package chylex.hee.datagen.server.util
|
package chylex.hee.datagen.server.util
|
||||||
|
|
||||||
import chylex.hee.system.migration.BlockFlowerPot
|
import chylex.hee.system.migration.BlockFlowerPot
|
||||||
import com.mojang.datafixers.util.Pair
|
import com.mojang.datafixers.util.Pair
|
||||||
import net.minecraft.block.Block
|
import net.minecraft.block.Block
|
||||||
import net.minecraft.data.DataGenerator
|
import net.minecraft.data.DataGenerator
|
||||||
import net.minecraft.data.LootTableProvider
|
import net.minecraft.data.LootTableProvider
|
||||||
import net.minecraft.data.loot.BlockLootTables
|
import net.minecraft.data.loot.BlockLootTables
|
||||||
import net.minecraft.loot.LootParameterSet
|
|
||||||
import net.minecraft.loot.LootParameterSets
|
|
||||||
import net.minecraft.loot.LootTable
|
|
||||||
import net.minecraft.loot.LootTable.Builder
|
|
||||||
import net.minecraft.loot.ValidationTracker
|
|
||||||
import net.minecraft.util.IItemProvider
|
import net.minecraft.util.IItemProvider
|
||||||
import net.minecraft.util.ResourceLocation
|
import net.minecraft.util.ResourceLocation
|
||||||
|
import net.minecraft.world.storage.loot.LootParameterSet
|
||||||
|
import net.minecraft.world.storage.loot.LootParameterSets
|
||||||
|
import net.minecraft.world.storage.loot.LootTable
|
||||||
|
import net.minecraft.world.storage.loot.LootTable.Builder
|
||||||
|
import net.minecraft.world.storage.loot.ValidationTracker
|
||||||
import java.util.function.BiConsumer
|
import java.util.function.BiConsumer
|
||||||
import java.util.function.Consumer
|
import java.util.function.Consumer
|
||||||
import java.util.function.Supplier
|
import java.util.function.Supplier
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.datagen.server.util
|
package chylex.hee.datagen.server.util
|
||||||
|
|
||||||
import net.minecraft.tags.Tag
|
import net.minecraft.tags.Tag
|
||||||
|
|
||||||
fun <T> Tag.Builder<T>.add(items: List<T>) {
|
fun <T> Tag.Builder<T>.add(items: List<T>) {
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee
|
package chylex.hee
|
||||||
|
|
||||||
import chylex.hee.game.block.BlockBrewingStandCustom
|
import chylex.hee.game.block.BlockBrewingStandCustom
|
||||||
import chylex.hee.game.block.BlockEndPortalOverride
|
import chylex.hee.game.block.BlockEndPortalOverride
|
||||||
import chylex.hee.game.block.BlockShulkerBoxOverride
|
import chylex.hee.game.block.BlockShulkerBoxOverride
|
||||||
@@ -25,6 +26,7 @@ import chylex.hee.system.Debug
|
|||||||
import chylex.hee.system.forge.SubscribeAllEvents
|
import chylex.hee.system.forge.SubscribeAllEvents
|
||||||
import chylex.hee.system.forge.SubscribeEvent
|
import chylex.hee.system.forge.SubscribeEvent
|
||||||
import net.minecraft.block.Blocks
|
import net.minecraft.block.Blocks
|
||||||
|
import net.minecraft.world.dimension.DimensionType
|
||||||
import net.minecraftforge.fml.DistExecutor
|
import net.minecraftforge.fml.DistExecutor
|
||||||
import net.minecraftforge.fml.DistExecutor.SafeSupplier
|
import net.minecraftforge.fml.DistExecutor.SafeSupplier
|
||||||
import net.minecraftforge.fml.ModLoadingContext
|
import net.minecraftforge.fml.ModLoadingContext
|
||||||
|
@@ -1,17 +1,16 @@
|
|||||||
package chylex.hee.client
|
package chylex.hee.client
|
||||||
|
|
||||||
import chylex.hee.HEE
|
import chylex.hee.HEE
|
||||||
import chylex.hee.system.facades.Resource
|
import chylex.hee.system.facades.Resource
|
||||||
import chylex.hee.system.migration.supply
|
import chylex.hee.system.migration.supply
|
||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
import net.minecraft.resources.IPackFinder
|
import net.minecraft.resources.IPackFinder
|
||||||
import net.minecraft.resources.IPackNameDecorator
|
|
||||||
import net.minecraft.resources.IResourcePack
|
import net.minecraft.resources.IResourcePack
|
||||||
import net.minecraft.resources.ResourcePackInfo
|
import net.minecraft.resources.ResourcePackInfo
|
||||||
import net.minecraft.resources.ResourcePackInfo.IFactory
|
import net.minecraft.resources.ResourcePackInfo.IFactory
|
||||||
import net.minecraft.resources.ResourcePackInfo.Priority
|
import net.minecraft.resources.ResourcePackInfo.Priority
|
||||||
import net.minecraft.resources.ResourcePackType
|
import net.minecraft.resources.ResourcePackType
|
||||||
import net.minecraftforge.fml.packs.ResourcePackLoader
|
import net.minecraftforge.fml.packs.ResourcePackLoader
|
||||||
import java.util.function.Consumer
|
|
||||||
|
|
||||||
object VanillaResourceOverrides : IPackFinder {
|
object VanillaResourceOverrides : IPackFinder {
|
||||||
fun register() {
|
fun register() {
|
||||||
@@ -21,11 +20,11 @@ object VanillaResourceOverrides : IPackFinder{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun findPacks(consumer: Consumer<ResourcePackInfo>, factory: IFactory) {
|
override fun <T : ResourcePackInfo> addPackInfosToMap(map: MutableMap<String, T>, factory: IFactory<T>) {
|
||||||
val delegate = ResourcePackLoader.getResourcePackFor(HEE.ID).get()
|
val delegate = ResourcePackLoader.getResourcePackFor(HEE.ID).get()
|
||||||
val supplier = supply<IResourcePack>(Pack(delegate))
|
val supplier = supply<IResourcePack>(Pack(delegate))
|
||||||
|
|
||||||
consumer.accept(ResourcePackInfo.createResourcePack("HEE 2", true /* isAlwaysEnabled */, supplier, factory, Priority.TOP, IPackNameDecorator.BUILTIN)!!)
|
map[HEE.ID] = ResourcePackInfo.createResourcePack("HEE 2", true /* isAlwaysEnabled */, supplier, factory, Priority.TOP)!!
|
||||||
}
|
}
|
||||||
|
|
||||||
private class Pack(delegate: IResourcePack) : IResourcePack by delegate {
|
private class Pack(delegate: IResourcePack) : IResourcePack by delegate {
|
||||||
|
@@ -1,12 +1,13 @@
|
|||||||
package chylex.hee.client.gui
|
package chylex.hee.client.gui
|
||||||
|
|
||||||
import chylex.hee.client.gui.base.GuiBaseChestContainer
|
import chylex.hee.client.gui.base.GuiBaseChestContainer
|
||||||
import chylex.hee.game.container.ContainerAmuletOfRecovery
|
import chylex.hee.game.container.ContainerAmuletOfRecovery
|
||||||
import chylex.hee.network.server.PacketServerContainerEvent
|
import chylex.hee.network.server.PacketServerContainerEvent
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
import chylex.hee.system.forge.Sided
|
import chylex.hee.system.forge.Sided
|
||||||
|
import net.minecraft.client.resources.I18n
|
||||||
import net.minecraft.entity.player.PlayerInventory
|
import net.minecraft.entity.player.PlayerInventory
|
||||||
import net.minecraft.util.text.ITextComponent
|
import net.minecraft.util.text.ITextComponent
|
||||||
import net.minecraft.util.text.TranslationTextComponent
|
|
||||||
import net.minecraftforge.fml.client.gui.widget.ExtendedButton
|
import net.minecraftforge.fml.client.gui.widget.ExtendedButton
|
||||||
|
|
||||||
@Sided(Side.CLIENT)
|
@Sided(Side.CLIENT)
|
||||||
@@ -14,8 +15,8 @@ class GuiAmuletOfRecovery(container: ContainerAmuletOfRecovery, inventory: Playe
|
|||||||
override fun init() {
|
override fun init() {
|
||||||
super.init()
|
super.init()
|
||||||
|
|
||||||
val moveAllTitle = TranslationTextComponent("gui.hee.amulet_of_recovery.move_all")
|
val moveAllTitle = I18n.format("gui.hee.amulet_of_recovery.move_all")
|
||||||
val moveAllWidth = (font.getStringPropertyWidth(moveAllTitle) + 14).coerceAtMost(xSize / 2)
|
val moveAllWidth = (font.getStringWidth(moveAllTitle) + 14).coerceAtMost(xSize / 2)
|
||||||
|
|
||||||
addButton(ExtendedButton(guiLeft + xSize - moveAllWidth - 7, (height / 2) + 6, moveAllWidth, 11, moveAllTitle) {
|
addButton(ExtendedButton(guiLeft + xSize - moveAllWidth - 7, (height / 2) + 6, moveAllWidth, 11, moveAllTitle) {
|
||||||
PacketServerContainerEvent(0).sendToServer()
|
PacketServerContainerEvent(0).sendToServer()
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.gui
|
package chylex.hee.client.gui
|
||||||
|
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.client.render.gl.GL
|
import chylex.hee.client.render.gl.GL
|
||||||
import chylex.hee.game.block.entity.TileEntityBrewingStandCustom
|
import chylex.hee.game.block.entity.TileEntityBrewingStandCustom
|
||||||
@@ -6,7 +7,6 @@ import chylex.hee.game.world.totalTime
|
|||||||
import chylex.hee.system.facades.Resource
|
import chylex.hee.system.facades.Resource
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
import chylex.hee.system.forge.Sided
|
import chylex.hee.system.forge.Sided
|
||||||
import com.mojang.blaze3d.matrix.MatrixStack
|
|
||||||
import net.minecraft.client.gui.screen.inventory.BrewingStandScreen
|
import net.minecraft.client.gui.screen.inventory.BrewingStandScreen
|
||||||
import net.minecraft.entity.player.PlayerInventory
|
import net.minecraft.entity.player.PlayerInventory
|
||||||
import net.minecraft.inventory.container.BrewingStandContainer
|
import net.minecraft.inventory.container.BrewingStandContainer
|
||||||
@@ -21,13 +21,13 @@ class GuiBrewingStandCustom(container: BrewingStandContainer, inventory: PlayerI
|
|||||||
|
|
||||||
private var brewStartTime = MC.world!!.totalTime
|
private var brewStartTime = MC.world!!.totalTime
|
||||||
|
|
||||||
override fun drawGuiContainerBackgroundLayer(matrix: MatrixStack, partialTicks: Float, mouseX: Int, mouseY: Int){
|
override fun drawGuiContainerBackgroundLayer(partialTicks: Float, mouseX: Int, mouseY: Int) {
|
||||||
val x = (width - xSize) / 2
|
val x = (width - xSize) / 2
|
||||||
val y = (height - ySize) / 2
|
val y = (height - ySize) / 2
|
||||||
|
|
||||||
GL.color(1F, 1F, 1F, 1F)
|
GL.color(1F, 1F, 1F, 1F)
|
||||||
GL.bindTexture(TEX_BACKGROUND)
|
GL.bindTexture(TEX_BACKGROUND)
|
||||||
blit(matrix, x, y, 0, 0, xSize, ySize)
|
blit(x, y, 0, 0, xSize, ySize)
|
||||||
|
|
||||||
val worldTime = MC.world!!.totalTime
|
val worldTime = MC.world!!.totalTime
|
||||||
val brewTime = container.func_216981_f() // RENAME getBrewTime
|
val brewTime = container.func_216981_f() // RENAME getBrewTime
|
||||||
@@ -36,13 +36,13 @@ class GuiBrewingStandCustom(container: BrewingStandContainer, inventory: PlayerI
|
|||||||
val brewProgress = (28F * (1F - (brewTime / 400F))).toInt()
|
val brewProgress = (28F * (1F - (brewTime / 400F))).toInt()
|
||||||
|
|
||||||
if (brewProgress > 0) {
|
if (brewProgress > 0) {
|
||||||
blit(matrix, x + 97, y + 16, 176, 0, 9, brewProgress)
|
blit(x + 97, y + 16, 176, 0, 9, brewProgress)
|
||||||
}
|
}
|
||||||
|
|
||||||
val bubbleLength = BUBBLE_LENGTHS[((worldTime - brewStartTime).toInt() / 2) % 7]
|
val bubbleLength = BUBBLE_LENGTHS[((worldTime - brewStartTime).toInt() / 2) % 7]
|
||||||
|
|
||||||
if (bubbleLength > 0) {
|
if (bubbleLength > 0) {
|
||||||
blit(matrix, x + 63, y + 43 - bubbleLength, 185, 29 - bubbleLength, 12, bubbleLength)
|
blit(x + 63, y + 43 - bubbleLength, 185, 29 - bubbleLength, 12, bubbleLength)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -50,14 +50,14 @@ class GuiBrewingStandCustom(container: BrewingStandContainer, inventory: PlayerI
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (container.getSlot(TileEntityBrewingStandCustom.SLOT_MODIFIER).hasStack) {
|
if (container.getSlot(TileEntityBrewingStandCustom.SLOT_MODIFIER).hasStack) {
|
||||||
blit(matrix, x + 62, y + 45, 197, 0, 14, 2)
|
blit(x + 62, y + 45, 197, 0, 14, 2)
|
||||||
}
|
}
|
||||||
|
|
||||||
for(slotIndex in TileEntityBrewingStandCustom.SLOTS_POTIONS) {
|
for(slotIndex in TileEntityBrewingStandCustom.SLOTS_POTIONS) {
|
||||||
val slot = container.getSlot(slotIndex)
|
val slot = container.getSlot(slotIndex)
|
||||||
|
|
||||||
if (!slot.hasStack) {
|
if (!slot.hasStack) {
|
||||||
blit(matrix, x + slot.xPos, y + slot.yPos, 211, 0, 16, 16)
|
blit(x + slot.xPos, y + slot.yPos, 211, 0, 16, 16)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.gui
|
package chylex.hee.client.gui
|
||||||
|
|
||||||
import chylex.hee.client.gui.base.GuiBaseChestContainer
|
import chylex.hee.client.gui.base.GuiBaseChestContainer
|
||||||
import chylex.hee.game.block.entity.TileEntityLootChest
|
import chylex.hee.game.block.entity.TileEntityLootChest
|
||||||
import chylex.hee.game.container.ContainerLootChest
|
import chylex.hee.game.container.ContainerLootChest
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.gui
|
package chylex.hee.client.gui
|
||||||
|
|
||||||
import chylex.hee.client.gui.base.GuiBaseChestContainer
|
import chylex.hee.client.gui.base.GuiBaseChestContainer
|
||||||
import chylex.hee.game.container.ContainerPortalTokenStorage
|
import chylex.hee.game.container.ContainerPortalTokenStorage
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.gui
|
package chylex.hee.client.gui
|
||||||
|
|
||||||
import chylex.hee.client.gui.base.GuiBaseChestContainer
|
import chylex.hee.client.gui.base.GuiBaseChestContainer
|
||||||
import chylex.hee.game.container.ContainerShulkerBox
|
import chylex.hee.game.container.ContainerShulkerBox
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.gui
|
package chylex.hee.client.gui
|
||||||
|
|
||||||
import chylex.hee.client.gui.base.GuiBaseCustomInventory
|
import chylex.hee.client.gui.base.GuiBaseCustomInventory
|
||||||
import chylex.hee.game.container.ContainerTrinketPouch
|
import chylex.hee.game.container.ContainerTrinketPouch
|
||||||
import chylex.hee.game.container.base.ContainerBaseCustomInventory
|
import chylex.hee.game.container.base.ContainerBaseCustomInventory
|
||||||
@@ -7,7 +8,6 @@ import chylex.hee.system.color.IntColor.Companion.RGBA
|
|||||||
import chylex.hee.system.facades.Resource
|
import chylex.hee.system.facades.Resource
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
import chylex.hee.system.forge.Sided
|
import chylex.hee.system.forge.Sided
|
||||||
import com.mojang.blaze3d.matrix.MatrixStack
|
|
||||||
import net.minecraft.entity.player.PlayerInventory
|
import net.minecraft.entity.player.PlayerInventory
|
||||||
import net.minecraft.util.text.ITextComponent
|
import net.minecraft.util.text.ITextComponent
|
||||||
|
|
||||||
@@ -24,19 +24,19 @@ class GuiTrinketPouch(container: ContainerTrinketPouch, inventory: PlayerInvento
|
|||||||
hiddenSlots = ContainerTrinketPouch.MAX_SLOTS - (container as ContainerBaseCustomInventory<*>).containerInventory.size
|
hiddenSlots = ContainerTrinketPouch.MAX_SLOTS - (container as ContainerBaseCustomInventory<*>).containerInventory.size
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun drawGuiContainerBackgroundLayer(matrix: MatrixStack, partialTicks: Float, mouseX: Int, mouseY: Int){
|
override fun drawGuiContainerBackgroundLayer(partialTicks: Float, mouseX: Int, mouseY: Int) {
|
||||||
super.drawGuiContainerBackgroundLayer(matrix, partialTicks, mouseX, mouseY)
|
super.drawGuiContainerBackgroundLayer(partialTicks, mouseX, mouseY)
|
||||||
|
|
||||||
val middleSlot = ContainerTrinketPouch.MAX_SLOTS / 2
|
val middleSlot = ContainerTrinketPouch.MAX_SLOTS / 2
|
||||||
|
|
||||||
repeat(hiddenSlots) {
|
repeat(hiddenSlots) {
|
||||||
renderSlotCover(matrix, middleSlot + ((ContainerTrinketPouch.MAX_SLOTS - it) / 2) * (if (it % 2 == 0) -1 else 1))
|
renderSlotCover(middleSlot + ((ContainerTrinketPouch.MAX_SLOTS - it) / 2) * (if (it % 2 == 0) -1 else 1))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun renderSlotCover(matrix: MatrixStack, index: Int){
|
private fun renderSlotCover(index: Int) {
|
||||||
val x = guiLeft + 44 + (index * 18)
|
val x = guiLeft + 44 + (index * 18)
|
||||||
val y = guiTop + 18
|
val y = guiTop + 18
|
||||||
fill(matrix, x, y, x + 16, y + 16, hiddenSlotColor)
|
fill(x, y, x + 16, y + 16, hiddenSlotColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,11 +1,11 @@
|
|||||||
package chylex.hee.client.gui.base
|
package chylex.hee.client.gui.base
|
||||||
|
|
||||||
import chylex.hee.client.render.gl.GL
|
import chylex.hee.client.render.gl.GL
|
||||||
import chylex.hee.game.inventory.size
|
import chylex.hee.game.inventory.size
|
||||||
import chylex.hee.system.color.IntColor.Companion.RGB
|
import chylex.hee.system.color.IntColor.Companion.RGB
|
||||||
import chylex.hee.system.facades.Resource
|
import chylex.hee.system.facades.Resource
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
import chylex.hee.system.forge.Sided
|
import chylex.hee.system.forge.Sided
|
||||||
import com.mojang.blaze3d.matrix.MatrixStack
|
|
||||||
import net.minecraft.client.gui.screen.inventory.ContainerScreen
|
import net.minecraft.client.gui.screen.inventory.ContainerScreen
|
||||||
import net.minecraft.entity.player.PlayerInventory
|
import net.minecraft.entity.player.PlayerInventory
|
||||||
import net.minecraft.inventory.container.ChestContainer
|
import net.minecraft.inventory.container.ChestContainer
|
||||||
@@ -24,25 +24,25 @@ abstract class GuiBaseChestContainer<T : ChestContainer>(container: T, inventory
|
|||||||
ySize = 114 + (containerRows * 18)
|
ySize = 114 + (containerRows * 18)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun render(matrix: MatrixStack, mouseX: Int, mouseY: Int, partialTicks: Float){
|
override fun render(mouseX: Int, mouseY: Int, partialTicks: Float) {
|
||||||
renderBackground(matrix)
|
renderBackground()
|
||||||
super.render(matrix, mouseX, mouseY, partialTicks)
|
super.render(mouseX, mouseY, partialTicks)
|
||||||
renderHoveredTooltip(matrix, mouseX, mouseY)
|
renderHoveredToolTip(mouseX, mouseY)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun drawGuiContainerBackgroundLayer(matrix: MatrixStack, partialTicks: Float, mouseX: Int, mouseY: Int){
|
override fun drawGuiContainerBackgroundLayer(partialTicks: Float, mouseX: Int, mouseY: Int) {
|
||||||
val x = (width - xSize) / 2
|
val x = (width - xSize) / 2
|
||||||
val y = (height - ySize) / 2
|
val y = (height - ySize) / 2
|
||||||
val heightContainer = 17 + (containerRows * 18)
|
val heightContainer = 17 + (containerRows * 18)
|
||||||
|
|
||||||
GL.color(1F, 1F, 1F, 1F)
|
GL.color(1F, 1F, 1F, 1F)
|
||||||
GL.bindTexture(TEX_BACKGROUND)
|
GL.bindTexture(TEX_BACKGROUND)
|
||||||
blit(matrix, x, y, 0, 0, xSize, heightContainer)
|
blit(x, y, 0, 0, xSize, heightContainer)
|
||||||
blit(matrix, x, y + heightContainer, 0, 126, xSize, 96)
|
blit(x, y + heightContainer, 0, 126, xSize, 96)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun drawGuiContainerForegroundLayer(matrix: MatrixStack, mouseX: Int, mouseY: Int){
|
override fun drawGuiContainerForegroundLayer(mouseX: Int, mouseY: Int) {
|
||||||
font.drawString(matrix, title.string, 8F, 6F, COLOR_TEXT)
|
font.drawString(title.formattedText, 8F, 6F, COLOR_TEXT)
|
||||||
font.drawString(matrix, playerInventory.displayName.string, 8F, ySize - 94F, COLOR_TEXT)
|
font.drawString(playerInventory.displayName.formattedText, 8F, ySize - 94F, COLOR_TEXT)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
package chylex.hee.client.gui.base
|
package chylex.hee.client.gui.base
|
||||||
|
|
||||||
import chylex.hee.client.render.gl.GL
|
import chylex.hee.client.render.gl.GL
|
||||||
import chylex.hee.game.container.base.ContainerBaseCustomInventory
|
import chylex.hee.game.container.base.ContainerBaseCustomInventory
|
||||||
import chylex.hee.system.color.IntColor.Companion.RGB
|
import chylex.hee.system.color.IntColor.Companion.RGB
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
import chylex.hee.system.forge.Sided
|
import chylex.hee.system.forge.Sided
|
||||||
import com.mojang.blaze3d.matrix.MatrixStack
|
|
||||||
import net.minecraft.client.gui.screen.inventory.ContainerScreen
|
import net.minecraft.client.gui.screen.inventory.ContainerScreen
|
||||||
import net.minecraft.entity.player.PlayerInventory
|
import net.minecraft.entity.player.PlayerInventory
|
||||||
import net.minecraft.util.ResourceLocation
|
import net.minecraft.util.ResourceLocation
|
||||||
@@ -19,23 +19,23 @@ abstract class GuiBaseCustomInventory<T : ContainerBaseCustomInventory<*>>(conta
|
|||||||
protected abstract val texBackground: ResourceLocation
|
protected abstract val texBackground: ResourceLocation
|
||||||
protected abstract val titleContainer: String
|
protected abstract val titleContainer: String
|
||||||
|
|
||||||
override fun render(matrix: MatrixStack, mouseX: Int, mouseY: Int, partialTicks: Float){
|
override fun render(mouseX: Int, mouseY: Int, partialTicks: Float) {
|
||||||
renderBackground(matrix)
|
renderBackground()
|
||||||
super.render(matrix, mouseX, mouseY, partialTicks)
|
super.render(mouseX, mouseY, partialTicks)
|
||||||
renderHoveredTooltip(matrix, mouseX, mouseY)
|
renderHoveredToolTip(mouseX, mouseY)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun drawGuiContainerBackgroundLayer(matrix: MatrixStack, partialTicks: Float, mouseX: Int, mouseY: Int){
|
override fun drawGuiContainerBackgroundLayer(partialTicks: Float, mouseX: Int, mouseY: Int) {
|
||||||
val x = (width - xSize) / 2
|
val x = (width - xSize) / 2
|
||||||
val y = (height - ySize) / 2
|
val y = (height - ySize) / 2
|
||||||
|
|
||||||
GL.color(1F, 1F, 1F, 1F)
|
GL.color(1F, 1F, 1F, 1F)
|
||||||
GL.bindTexture(texBackground)
|
GL.bindTexture(texBackground)
|
||||||
blit(matrix, x, y, 0, 0, xSize, ySize)
|
blit(x, y, 0, 0, xSize, ySize)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun drawGuiContainerForegroundLayer(matrix: MatrixStack, mouseX: Int, mouseY: Int){
|
override fun drawGuiContainerForegroundLayer(mouseX: Int, mouseY: Int) {
|
||||||
font.drawString(matrix, title.string, 8F, 6F, COLOR_TEXT)
|
font.drawString(title.formattedText, 8F, 6F, COLOR_TEXT)
|
||||||
font.drawString(matrix, playerInventory.displayName.string, 8F, ySize - 94F, COLOR_TEXT)
|
font.drawString(playerInventory.displayName.formattedText, 8F, ySize - 94F, COLOR_TEXT)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.model.block
|
package chylex.hee.client.model.block
|
||||||
|
|
||||||
import chylex.hee.client.model.beginBox
|
import chylex.hee.client.model.beginBox
|
||||||
import chylex.hee.client.render.gl.translateZ
|
import chylex.hee.client.render.gl.translateZ
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
@@ -8,7 +9,7 @@ import com.mojang.blaze3d.vertex.IVertexBuilder
|
|||||||
import net.minecraft.client.renderer.RenderType
|
import net.minecraft.client.renderer.RenderType
|
||||||
import net.minecraft.client.renderer.model.Model
|
import net.minecraft.client.renderer.model.Model
|
||||||
import net.minecraft.client.renderer.model.ModelRenderer
|
import net.minecraft.client.renderer.model.ModelRenderer
|
||||||
import net.minecraft.util.math.vector.Vector3d
|
import net.minecraft.util.math.Vec3d
|
||||||
import kotlin.math.PI
|
import kotlin.math.PI
|
||||||
import kotlin.math.abs
|
import kotlin.math.abs
|
||||||
import kotlin.math.sin
|
import kotlin.math.sin
|
||||||
@@ -40,7 +41,7 @@ object ModelBlockIgneousPlate : Model(RenderType::getEntityCutout){
|
|||||||
outerBox.render(matrix, builder, combinedLight, combinedOverlay, red, green, blue, alpha)
|
outerBox.render(matrix, builder, combinedLight, combinedOverlay, red, green, blue, alpha)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun renderInnerBox(matrix: MatrixStack, builder: IVertexBuilder, combinedLight: Int, combinedOverlay: Int, color: Vector3d, animation: Double){
|
fun renderInnerBox(matrix: MatrixStack, builder: IVertexBuilder, combinedLight: Int, combinedOverlay: Int, color: Vec3d, animation: Double) {
|
||||||
matrix.push()
|
matrix.push()
|
||||||
matrix.translateZ(-abs(sin(-animation)).toFloat() * 0.0925)
|
matrix.translateZ(-abs(sin(-animation)).toFloat() * 0.0925)
|
||||||
innerBox.render(matrix, builder, combinedLight, combinedOverlay, color.x.toFloat(), color.y.toFloat(), color.z.toFloat(), 1F)
|
innerBox.render(matrix, builder, combinedLight, combinedOverlay, color.x.toFloat(), color.y.toFloat(), color.z.toFloat(), 1F)
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.model.entity
|
package chylex.hee.client.model.entity
|
||||||
|
|
||||||
import chylex.hee.client.model.FACE_FRONT
|
import chylex.hee.client.model.FACE_FRONT
|
||||||
import chylex.hee.client.model.beginBox
|
import chylex.hee.client.model.beginBox
|
||||||
import chylex.hee.client.model.retainFace
|
import chylex.hee.client.model.retainFace
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.model.entity
|
package chylex.hee.client.model.entity
|
||||||
|
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.client.model.FACE_FRONT
|
import chylex.hee.client.model.FACE_FRONT
|
||||||
import chylex.hee.client.model.beginBox
|
import chylex.hee.client.model.beginBox
|
||||||
@@ -56,9 +57,9 @@ object ModelEntityMobBlobby : EntityModel<EntityMobBlobby>(){
|
|||||||
|
|
||||||
override fun setLivingAnimations(entity: EntityMobBlobby, limbSwing: Float, limbSwingAmount: Float, partialTicks: Float) {
|
override fun setLivingAnimations(entity: EntityMobBlobby, limbSwing: Float, limbSwingAmount: Float, partialTicks: Float) {
|
||||||
entity.color.let {
|
entity.color.let {
|
||||||
r = it.red / 255F
|
r = it.redF
|
||||||
g = it.green / 255F
|
g = it.greenF
|
||||||
b = it.blue / 255F
|
b = it.blueF
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,11 +1,12 @@
|
|||||||
package chylex.hee.client.model.entity
|
package chylex.hee.client.model.entity
|
||||||
|
|
||||||
import chylex.hee.game.entity.living.EntityMobUndread
|
import chylex.hee.game.entity.living.EntityMobUndread
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
import chylex.hee.system.forge.Sided
|
import chylex.hee.system.forge.Sided
|
||||||
import net.minecraft.client.renderer.entity.model.AbstractZombieModel
|
import net.minecraft.client.renderer.entity.model.AbstractZombieModel
|
||||||
|
|
||||||
@Sided(Side.CLIENT)
|
@Sided(Side.CLIENT)
|
||||||
class ModelEntityUndread private constructor(modelSize: Float, textureWidth: Int, textureHeight: Int) : AbstractZombieModel<EntityMobUndread>(modelSize, 0F, textureWidth, textureHeight){
|
class ModelEntityMobUndread private constructor(modelSize: Float, textureWidth: Int, textureHeight: Int) : AbstractZombieModel<EntityMobUndread>(modelSize, 0F, textureWidth, textureHeight) {
|
||||||
constructor(modelSize: Float, tallTexture: Boolean) : this(modelSize, 64, if (tallTexture) 32 else 64)
|
constructor(modelSize: Float, tallTexture: Boolean) : this(modelSize, 64, if (tallTexture) 32 else 64)
|
||||||
constructor() : this(0F, false)
|
constructor() : this(0F, false)
|
||||||
|
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.model.entity
|
package chylex.hee.client.model.entity
|
||||||
|
|
||||||
import chylex.hee.client.model.beginBox
|
import chylex.hee.client.model.beginBox
|
||||||
import chylex.hee.game.entity.item.EntityTokenHolder
|
import chylex.hee.game.entity.item.EntityTokenHolder
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.model.item
|
package chylex.hee.client.model.item
|
||||||
|
|
||||||
import chylex.hee.HEE
|
import chylex.hee.HEE
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.system.facades.Resource
|
import chylex.hee.system.facades.Resource
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render
|
package chylex.hee.client.render
|
||||||
|
|
||||||
import chylex.hee.HEE
|
import chylex.hee.HEE
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.client.render.gl.DF_ONE_MINUS_SRC_ALPHA
|
import chylex.hee.client.render.gl.DF_ONE_MINUS_SRC_ALPHA
|
||||||
@@ -78,7 +79,7 @@ object OverlayRenderer{
|
|||||||
GL.bindTexture(TEX_PURIFIED_ENDER_GOO_OVERLAY)
|
GL.bindTexture(TEX_PURIFIED_ENDER_GOO_OVERLAY)
|
||||||
}
|
}
|
||||||
|
|
||||||
MC.instance.ingameGUI.blit(e.matrixStack, 0, 0, 0, 0, window.scaledWidth, window.scaledHeight)
|
MC.instance.ingameGUI.blit(0, 0, 0, 0, window.scaledWidth, window.scaledHeight)
|
||||||
|
|
||||||
GL.color(1F, 1F, 1F, 1F)
|
GL.color(1F, 1F, 1F, 1F)
|
||||||
}
|
}
|
||||||
@@ -90,7 +91,6 @@ object OverlayRenderer{
|
|||||||
fun onRenderText(@Suppress("UNUSED_PARAMETER") e: RenderGameOverlayEvent.Text) {
|
fun onRenderText(@Suppress("UNUSED_PARAMETER") e: RenderGameOverlayEvent.Text) {
|
||||||
fun drawTextOffScreenCenter(x: Int, y: Int, line: Int, text: String, color: IntColor) {
|
fun drawTextOffScreenCenter(x: Int, y: Int, line: Int, text: String, color: IntColor) {
|
||||||
val window = MC.window
|
val window = MC.window
|
||||||
val matrix = e.matrixStack
|
|
||||||
|
|
||||||
with(MC.fontRenderer) {
|
with(MC.fontRenderer) {
|
||||||
val centerX = x + (window.scaledWidth / 2)
|
val centerX = x + (window.scaledWidth / 2)
|
||||||
@@ -102,8 +102,8 @@ object OverlayRenderer{
|
|||||||
val offsetX = -(textWidth / 2)
|
val offsetX = -(textWidth / 2)
|
||||||
val offsetY = -(textHeight / 2)
|
val offsetY = -(textHeight / 2)
|
||||||
|
|
||||||
AbstractGui.fill(matrix, centerX + offsetX - BORDER_SIZE, centerY + offsetY - BORDER_SIZE, centerX - offsetX + BORDER_SIZE - 1, centerY - offsetY + BORDER_SIZE - 1, RGBA(0u, 0.6F).i)
|
AbstractGui.fill(centerX + offsetX - BORDER_SIZE, centerY + offsetY - BORDER_SIZE, centerX - offsetX + BORDER_SIZE - 1, centerY - offsetY + BORDER_SIZE - 1, RGBA(0u, 0.6F).i)
|
||||||
drawStringWithShadow(matrix, text, (centerX + offsetX).toFloat(), (centerY + offsetY).toFloat(), color.i)
|
drawStringWithShadow(text, (centerX + offsetX).toFloat(), (centerY + offsetY).toFloat(), color.i)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,20 +1,24 @@
|
|||||||
package chylex.hee.client.render
|
package chylex.hee.client.render
|
||||||
|
|
||||||
import chylex.hee.HEE
|
import chylex.hee.HEE
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.client.render.gl.DF_ONE_MINUS_SRC_ALPHA
|
import chylex.hee.client.render.gl.DF_ONE_MINUS_SRC_ALPHA
|
||||||
import chylex.hee.client.render.gl.DF_ZERO
|
import chylex.hee.client.render.gl.DF_ZERO
|
||||||
|
import chylex.hee.client.render.gl.FOG_EXP2
|
||||||
import chylex.hee.client.render.gl.GL
|
import chylex.hee.client.render.gl.GL
|
||||||
import chylex.hee.client.render.gl.SF_ONE
|
import chylex.hee.client.render.gl.SF_ONE
|
||||||
import chylex.hee.client.render.gl.SF_SRC_ALPHA
|
import chylex.hee.client.render.gl.SF_SRC_ALPHA
|
||||||
import chylex.hee.game.entity.dimensionKey
|
import chylex.hee.client.render.territory.AbstractEnvironmentRenderer
|
||||||
import chylex.hee.game.entity.lookDirVec
|
import chylex.hee.game.entity.lookDirVec
|
||||||
import chylex.hee.game.entity.posVec
|
import chylex.hee.game.entity.posVec
|
||||||
import chylex.hee.game.particle.ParticleVoid
|
import chylex.hee.game.particle.ParticleVoid
|
||||||
import chylex.hee.game.particle.spawner.ParticleSpawnerCustom
|
import chylex.hee.game.particle.spawner.ParticleSpawnerCustom
|
||||||
import chylex.hee.game.particle.spawner.properties.IOffset.InBox
|
import chylex.hee.game.particle.spawner.properties.IOffset.InBox
|
||||||
import chylex.hee.game.particle.spawner.properties.IShape.Point
|
import chylex.hee.game.particle.spawner.properties.IShape.Point
|
||||||
|
import chylex.hee.game.world.WorldProviderEndCustom
|
||||||
import chylex.hee.game.world.territory.TerritoryType
|
import chylex.hee.game.world.territory.TerritoryType
|
||||||
import chylex.hee.game.world.territory.TerritoryVoid
|
import chylex.hee.game.world.territory.TerritoryVoid
|
||||||
|
import chylex.hee.game.world.territory.properties.TerritoryEnvironment
|
||||||
import chylex.hee.system.Debug
|
import chylex.hee.system.Debug
|
||||||
import chylex.hee.system.color.IntColor
|
import chylex.hee.system.color.IntColor
|
||||||
import chylex.hee.system.color.IntColor.Companion.RGB
|
import chylex.hee.system.color.IntColor.Companion.RGB
|
||||||
@@ -23,11 +27,13 @@ import chylex.hee.system.forge.Side
|
|||||||
import chylex.hee.system.forge.SubscribeAllEvents
|
import chylex.hee.system.forge.SubscribeAllEvents
|
||||||
import chylex.hee.system.forge.SubscribeEvent
|
import chylex.hee.system.forge.SubscribeEvent
|
||||||
import chylex.hee.system.math.LerpedFloat
|
import chylex.hee.system.math.LerpedFloat
|
||||||
|
import chylex.hee.system.math.Vec3
|
||||||
import chylex.hee.system.math.floorToInt
|
import chylex.hee.system.math.floorToInt
|
||||||
import chylex.hee.system.math.scale
|
import chylex.hee.system.math.scale
|
||||||
import chylex.hee.system.migration.EntityPlayer
|
import chylex.hee.system.migration.EntityPlayer
|
||||||
import com.mojang.blaze3d.matrix.MatrixStack
|
|
||||||
import net.minecraft.client.resources.I18n
|
import net.minecraft.client.resources.I18n
|
||||||
|
import net.minecraft.world.dimension.DimensionType
|
||||||
|
import net.minecraftforge.client.event.EntityViewRenderEvent.RenderFogEvent
|
||||||
import net.minecraftforge.client.event.RenderGameOverlayEvent
|
import net.minecraftforge.client.event.RenderGameOverlayEvent
|
||||||
import net.minecraftforge.common.MinecraftForge
|
import net.minecraftforge.common.MinecraftForge
|
||||||
import net.minecraftforge.event.TickEvent.ClientTickEvent
|
import net.minecraftforge.event.TickEvent.ClientTickEvent
|
||||||
@@ -38,6 +44,17 @@ import kotlin.math.pow
|
|||||||
|
|
||||||
@SubscribeAllEvents(Side.CLIENT, modid = HEE.ID)
|
@SubscribeAllEvents(Side.CLIENT, modid = HEE.ID)
|
||||||
object TerritoryRenderer {
|
object TerritoryRenderer {
|
||||||
|
@JvmStatic
|
||||||
|
val environment
|
||||||
|
get() = MC.player?.let { TerritoryType.fromX(it.posX.floorToInt()) }?.desc?.environment
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
val skyColor
|
||||||
|
get() = (environment?.let(TerritoryEnvironment::fogColor) ?: Vec3.ZERO).let {
|
||||||
|
// use fog color because vanilla blends fog into sky color based on chunk render distance
|
||||||
|
RGB((it.x * 255).floorToInt(), (it.y * 255).floorToInt(), (it.z * 255).floorToInt()).i
|
||||||
|
}
|
||||||
|
|
||||||
private var prevChunkX = Int.MAX_VALUE
|
private var prevChunkX = Int.MAX_VALUE
|
||||||
private var prevTerritory: TerritoryType? = null
|
private var prevTerritory: TerritoryType? = null
|
||||||
|
|
||||||
@@ -46,7 +63,7 @@ object TerritoryRenderer{
|
|||||||
if (e.phase == Phase.START) {
|
if (e.phase == Phase.START) {
|
||||||
val player = MC.player
|
val player = MC.player
|
||||||
|
|
||||||
if (player != null && player.dimensionKey === HEE.dim && player.ticksExisted > 0){
|
if (player != null && player.world.dimension is WorldProviderEndCustom && player.ticksExisted > 0) {
|
||||||
Void.tick(player)
|
Void.tick(player)
|
||||||
Title.tick()
|
Title.tick()
|
||||||
|
|
||||||
@@ -80,6 +97,25 @@ object TerritoryRenderer{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent(priority = EventPriority.LOWEST)
|
||||||
|
fun onFog(@Suppress("UNUSED_PARAMETER") e: RenderFogEvent) {
|
||||||
|
val player = MC.player?.takeIf { it.world.dimension.type == DimensionType.THE_END } ?: return
|
||||||
|
val territory = TerritoryType.fromPos(player)
|
||||||
|
|
||||||
|
if (territory == null || WorldProviderEndCustom.debugMode) {
|
||||||
|
GL.setFogMode(FOG_EXP2)
|
||||||
|
GL.setFogDensity(0F)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
val env = territory.desc.environment
|
||||||
|
val density = env.fogDensity * AbstractEnvironmentRenderer.currentFogDensityMp
|
||||||
|
val modifier = env.fogRenderDistanceModifier * AbstractEnvironmentRenderer.currentRenderDistanceMp
|
||||||
|
|
||||||
|
GL.setFogMode(FOG_EXP2)
|
||||||
|
GL.setFogDensity(density + modifier)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Void handling
|
// Void handling
|
||||||
|
|
||||||
val VOID_FACTOR_VALUE
|
val VOID_FACTOR_VALUE
|
||||||
@@ -123,7 +159,7 @@ object TerritoryRenderer{
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
fun onRenderGameOverlayText(e: RenderGameOverlayEvent.Text) {
|
fun onRenderGameOverlayText(e: RenderGameOverlayEvent.Text) {
|
||||||
if (MC.settings.showDebugInfo && MC.player?.dimensionKey === HEE.dim){
|
if (MC.settings.showDebugInfo && MC.player?.dimension === HEE.dim) {
|
||||||
with(e.left) {
|
with(e.left) {
|
||||||
add("")
|
add("")
|
||||||
add("End Void Factor: ${"%.3f".format(voidFactor.currentValue)}")
|
add("End Void Factor: ${"%.3f".format(voidFactor.currentValue)}")
|
||||||
@@ -204,8 +240,8 @@ object TerritoryRenderer{
|
|||||||
val x = -fontRenderer.getStringWidth(textTitle) * 0.5F
|
val x = -fontRenderer.getStringWidth(textTitle) * 0.5F
|
||||||
val y = -fontRenderer.FONT_HEIGHT - 2F
|
val y = -fontRenderer.FONT_HEIGHT - 2F
|
||||||
|
|
||||||
drawTitle(e.matrixStack, x + 0.5F, y + 0.5F, textShadowColor.withAlpha(opacity.pow(1.25F)))
|
drawTitle(x + 0.5F, y + 0.5F, textShadowColor.withAlpha(opacity.pow(1.25F)))
|
||||||
drawTitle(e.matrixStack, x, y, textMainColor.withAlpha(opacity))
|
drawTitle(x, y, textMainColor.withAlpha(opacity))
|
||||||
|
|
||||||
GL.popMatrix()
|
GL.popMatrix()
|
||||||
GL.alphaFunc(GL_GREATER, 0.1F)
|
GL.alphaFunc(GL_GREATER, 0.1F)
|
||||||
@@ -213,9 +249,9 @@ object TerritoryRenderer{
|
|||||||
GL.popMatrix()
|
GL.popMatrix()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun drawTitle(matrix: MatrixStack, x: Float, y: Float, color: IntColor){
|
private fun drawTitle(x: Float, y: Float, color: IntColor) {
|
||||||
if (color.alpha > 3) { // prevents flickering alpha
|
if (color.alpha > 3) { // prevents flickering alpha
|
||||||
MC.fontRenderer.drawString(matrix, textTitle, x, y, color.i)
|
MC.fontRenderer.drawString(textTitle, x, y, color.i)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,10 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.client.render.gl.DF_ONE
|
import chylex.hee.client.render.gl.DF_ONE
|
||||||
import chylex.hee.client.render.gl.DF_ONE_MINUS_SRC_ALPHA
|
import chylex.hee.client.render.gl.DF_ONE_MINUS_SRC_ALPHA
|
||||||
import chylex.hee.client.render.gl.RenderStateBuilder
|
import chylex.hee.client.render.gl.RenderStateBuilder
|
||||||
|
import chylex.hee.client.render.gl.RenderStateBuilder.Companion.FOG_BLACK
|
||||||
import chylex.hee.client.render.gl.RenderStateBuilder.Companion.FOG_ENABLED
|
import chylex.hee.client.render.gl.RenderStateBuilder.Companion.FOG_ENABLED
|
||||||
import chylex.hee.client.render.gl.SF_SRC_ALPHA
|
import chylex.hee.client.render.gl.SF_SRC_ALPHA
|
||||||
import chylex.hee.game.block.BlockAbstractPortal
|
import chylex.hee.game.block.BlockAbstractPortal
|
||||||
@@ -23,12 +25,12 @@ import chylex.hee.system.math.toRadians
|
|||||||
import com.mojang.blaze3d.matrix.MatrixStack
|
import com.mojang.blaze3d.matrix.MatrixStack
|
||||||
import com.mojang.blaze3d.vertex.IVertexBuilder
|
import com.mojang.blaze3d.vertex.IVertexBuilder
|
||||||
import net.minecraft.client.renderer.IRenderTypeBuffer
|
import net.minecraft.client.renderer.IRenderTypeBuffer
|
||||||
|
import net.minecraft.client.renderer.Matrix4f
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntityRenderer
|
import net.minecraft.client.renderer.tileentity.TileEntityRenderer
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher
|
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher
|
||||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats
|
import net.minecraft.client.renderer.vertex.DefaultVertexFormats
|
||||||
import net.minecraft.util.math.BlockPos
|
import net.minecraft.util.math.BlockPos
|
||||||
import net.minecraft.util.math.vector.Matrix4f
|
import net.minecraft.util.math.Vec3d
|
||||||
import net.minecraft.util.math.vector.Vector3d
|
|
||||||
import net.minecraft.world.World
|
import net.minecraft.world.World
|
||||||
import org.lwjgl.opengl.GL11
|
import org.lwjgl.opengl.GL11
|
||||||
import java.util.Random
|
import java.util.Random
|
||||||
@@ -54,7 +56,7 @@ abstract class RenderTileAbstractPortal<T : TileEntityPortalInner, C : IPortalCo
|
|||||||
private val RENDER_TYPE_LAYER = Array(16) {
|
private val RENDER_TYPE_LAYER = Array(16) {
|
||||||
with(RenderStateBuilder()) {
|
with(RenderStateBuilder()) {
|
||||||
tex(TEX_PARTICLE_LAYER)
|
tex(TEX_PARTICLE_LAYER)
|
||||||
fog(FOG_ENABLED)
|
fog(FOG_BLACK)
|
||||||
blend(SF_SRC_ALPHA, DF_ONE)
|
blend(SF_SRC_ALPHA, DF_ONE)
|
||||||
buildType("hee:portal_layer_${it}", DefaultVertexFormats.POSITION_COLOR_TEX, GL11.GL_QUADS, bufferSize = 256)
|
buildType("hee:portal_layer_${it}", DefaultVertexFormats.POSITION_COLOR_TEX, GL11.GL_QUADS, bufferSize = 256)
|
||||||
}
|
}
|
||||||
@@ -209,7 +211,7 @@ abstract class RenderTileAbstractPortal<T : TileEntityPortalInner, C : IPortalCo
|
|||||||
builder.pos(mat, sizeNB, yB, sizeNB).color().tex(texW, 0F).endVertex()
|
builder.pos(mat, sizeNB, yB, sizeNB).color().tex(texW, 0F).endVertex()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun renderLayer(mat: Matrix4f, builder: IVertexBuilder, layer: Int, dist: Int, diff: Vector3d){
|
private fun renderLayer(mat: Matrix4f, builder: IVertexBuilder, layer: Int, dist: Int, diff: Vec3d) {
|
||||||
val layerIndexRev = 16 - layer
|
val layerIndexRev = 16 - layer
|
||||||
val parallaxMp = (1F + abs(diff.y.toFloat() / 32F)).pow(0.12F)
|
val parallaxMp = (1F + abs(diff.y.toFloat() / 32F)).pow(0.12F)
|
||||||
|
|
||||||
|
@@ -1,10 +1,11 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import chylex.hee.game.block.entity.TileEntityDarkChest
|
import chylex.hee.game.block.entity.TileEntityDarkChest
|
||||||
import chylex.hee.init.ModAtlases
|
import chylex.hee.init.ModAtlases
|
||||||
import chylex.hee.system.facades.Resource
|
import chylex.hee.system.facades.Resource
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
import chylex.hee.system.forge.Sided
|
import chylex.hee.system.forge.Sided
|
||||||
import net.minecraft.client.renderer.model.RenderMaterial
|
import net.minecraft.client.renderer.model.Material
|
||||||
import net.minecraft.client.renderer.tileentity.ChestTileEntityRenderer
|
import net.minecraft.client.renderer.tileentity.ChestTileEntityRenderer
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher
|
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher
|
||||||
import net.minecraft.state.properties.ChestType
|
import net.minecraft.state.properties.ChestType
|
||||||
@@ -18,9 +19,9 @@ class RenderTileDarkChest(dispatcher: TileEntityRendererDispatcher) : ChestTileE
|
|||||||
val TEX_DOUBLE_LEFT = Resource.Custom("entity/dark_chest_left")
|
val TEX_DOUBLE_LEFT = Resource.Custom("entity/dark_chest_left")
|
||||||
val TEX_DOUBLE_RIGHT = Resource.Custom("entity/dark_chest_right")
|
val TEX_DOUBLE_RIGHT = Resource.Custom("entity/dark_chest_right")
|
||||||
|
|
||||||
private val MAT_SINGLE = RenderMaterial(ModAtlases.ATLAS_TILES, TEX_SINGLE)
|
private val MAT_SINGLE = Material(ModAtlases.ATLAS_TILES, TEX_SINGLE)
|
||||||
private val MAT_DOUBLE_LEFT = RenderMaterial(ModAtlases.ATLAS_TILES, TEX_DOUBLE_LEFT)
|
private val MAT_DOUBLE_LEFT = Material(ModAtlases.ATLAS_TILES, TEX_DOUBLE_LEFT)
|
||||||
private val MAT_DOUBLE_RIGHT = RenderMaterial(ModAtlases.ATLAS_TILES, TEX_DOUBLE_RIGHT)
|
private val MAT_DOUBLE_RIGHT = Material(ModAtlases.ATLAS_TILES, TEX_DOUBLE_RIGHT)
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import chylex.hee.HEE
|
import chylex.hee.HEE
|
||||||
import chylex.hee.game.block.BlockAbstractPortal
|
import chylex.hee.game.block.BlockAbstractPortal
|
||||||
import chylex.hee.game.block.BlockAbstractPortal.IPortalController
|
import chylex.hee.game.block.BlockAbstractPortal.IPortalController
|
||||||
@@ -20,7 +21,7 @@ class RenderTileEndPortal(dispatcher: TileEntityRendererDispatcher) : RenderTile
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun findController(world: World, pos: BlockPos): IPortalController? {
|
override fun findController(world: World, pos: BlockPos): IPortalController? {
|
||||||
if (world.dimensionKey === HEE.dim){
|
if (world.dimension.type === HEE.dim) {
|
||||||
return AlwaysOnController
|
return AlwaysOnController
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import chylex.hee.HEE
|
import chylex.hee.HEE
|
||||||
import chylex.hee.client.render.gl.RenderStateBuilder
|
import chylex.hee.client.render.gl.RenderStateBuilder
|
||||||
import chylex.hee.client.render.gl.RenderStateBuilder.Companion.ALPHA_CUTOUT
|
import chylex.hee.client.render.gl.RenderStateBuilder.Companion.ALPHA_CUTOUT
|
||||||
@@ -14,6 +15,7 @@ import chylex.hee.system.math.floorToInt
|
|||||||
import com.mojang.blaze3d.matrix.MatrixStack
|
import com.mojang.blaze3d.matrix.MatrixStack
|
||||||
import com.mojang.blaze3d.vertex.IVertexBuilder
|
import com.mojang.blaze3d.vertex.IVertexBuilder
|
||||||
import net.minecraft.client.renderer.IRenderTypeBuffer
|
import net.minecraft.client.renderer.IRenderTypeBuffer
|
||||||
|
import net.minecraft.client.renderer.Matrix4f
|
||||||
import net.minecraft.client.renderer.WorldRenderer
|
import net.minecraft.client.renderer.WorldRenderer
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntityRenderer
|
import net.minecraft.client.renderer.tileentity.TileEntityRenderer
|
||||||
@@ -21,7 +23,6 @@ import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher
|
|||||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats
|
import net.minecraft.client.renderer.vertex.DefaultVertexFormats
|
||||||
import net.minecraft.inventory.container.PlayerContainer
|
import net.minecraft.inventory.container.PlayerContainer
|
||||||
import net.minecraft.util.math.BlockPos
|
import net.minecraft.util.math.BlockPos
|
||||||
import net.minecraft.util.math.vector.Matrix4f
|
|
||||||
import net.minecraft.world.World
|
import net.minecraft.world.World
|
||||||
import net.minecraftforge.client.event.TextureStitchEvent
|
import net.minecraftforge.client.event.TextureStitchEvent
|
||||||
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus.MOD
|
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus.MOD
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import chylex.hee.client.model.block.ModelBlockIgneousPlate
|
import chylex.hee.client.model.block.ModelBlockIgneousPlate
|
||||||
import chylex.hee.client.render.gl.RenderStateBuilder
|
import chylex.hee.client.render.gl.RenderStateBuilder
|
||||||
import chylex.hee.client.render.gl.RenderStateBuilder.Companion.BLEND_NONE
|
import chylex.hee.client.render.gl.RenderStateBuilder.Companion.BLEND_NONE
|
||||||
@@ -29,7 +30,7 @@ import net.minecraft.client.renderer.RenderType
|
|||||||
import net.minecraft.client.renderer.tileentity.TileEntityRenderer
|
import net.minecraft.client.renderer.tileentity.TileEntityRenderer
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher
|
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher
|
||||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats
|
import net.minecraft.client.renderer.vertex.DefaultVertexFormats
|
||||||
import net.minecraft.util.math.vector.Vector3d
|
import net.minecraft.util.math.Vec3d
|
||||||
import org.lwjgl.opengl.GL11
|
import org.lwjgl.opengl.GL11
|
||||||
|
|
||||||
@Sided(Side.CLIENT)
|
@Sided(Side.CLIENT)
|
||||||
@@ -53,7 +54,7 @@ class RenderTileIgneousPlate(dispatcher: TileEntityRendererDispatcher) : TileEnt
|
|||||||
RGB(235, 23, 23).asVec
|
RGB(235, 23, 23).asVec
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun getInnerBoxColor(combinedHeat: Float): Vector3d{
|
private fun getInnerBoxColor(combinedHeat: Float): Vec3d {
|
||||||
val index = combinedHeat.floorToInt().coerceIn(0, COLOR_TRANSITIONS.lastIndex - 1)
|
val index = combinedHeat.floorToInt().coerceIn(0, COLOR_TRANSITIONS.lastIndex - 1)
|
||||||
val progress = combinedHeat.toDouble() - index
|
val progress = combinedHeat.toDouble() - index
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import chylex.hee.HEE
|
import chylex.hee.HEE
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.client.render.gl.RenderStateBuilder
|
import chylex.hee.client.render.gl.RenderStateBuilder
|
||||||
@@ -20,7 +21,6 @@ import com.mojang.blaze3d.matrix.MatrixStack
|
|||||||
import net.minecraft.client.renderer.Atlases
|
import net.minecraft.client.renderer.Atlases
|
||||||
import net.minecraft.client.renderer.IRenderTypeBuffer
|
import net.minecraft.client.renderer.IRenderTypeBuffer
|
||||||
import net.minecraft.client.renderer.model.IBakedModel
|
import net.minecraft.client.renderer.model.IBakedModel
|
||||||
import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType
|
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
||||||
import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer
|
import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntityRenderer
|
import net.minecraft.client.renderer.tileentity.TileEntityRenderer
|
||||||
@@ -35,6 +35,7 @@ import net.minecraftforge.client.model.ModelLoader
|
|||||||
import net.minecraftforge.client.model.data.EmptyModelData
|
import net.minecraftforge.client.model.data.EmptyModelData
|
||||||
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus.MOD
|
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus.MOD
|
||||||
import org.lwjgl.opengl.GL11
|
import org.lwjgl.opengl.GL11
|
||||||
|
import kotlin.math.sqrt
|
||||||
|
|
||||||
@Sided(Side.CLIENT)
|
@Sided(Side.CLIENT)
|
||||||
class RenderTileJarODust(dispatcher: TileEntityRendererDispatcher) : TileEntityRenderer<TileEntityJarODust>(dispatcher) {
|
class RenderTileJarODust(dispatcher: TileEntityRendererDispatcher) : TileEntityRenderer<TileEntityJarODust>(dispatcher) {
|
||||||
@@ -54,8 +55,10 @@ class RenderTileJarODust(dispatcher: TileEntityRendererDispatcher) : TileEntityR
|
|||||||
|
|
||||||
private val AABB = BlockJarODust.AABB
|
private val AABB = BlockJarODust.AABB
|
||||||
|
|
||||||
private const val EPSILON_Y = 0.025
|
private const val EPSILON_Y_BOTTOM = 0.02
|
||||||
|
private const val EPSILON_Y_TOP = 0.04
|
||||||
private const val EPSILON_XZ = 0.005
|
private const val EPSILON_XZ = 0.005
|
||||||
|
private const val FIRST_LAYER_HEIGHT = 0.0325
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
fun onTextureStitchPre(e: TextureStitchEvent.Pre) {
|
fun onTextureStitchPre(e: TextureStitchEvent.Pre) {
|
||||||
@@ -71,9 +74,10 @@ class RenderTileJarODust(dispatcher: TileEntityRendererDispatcher) : TileEntityR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun renderLayers(layers: DustLayers, matrix: MatrixStack, buffer: IRenderTypeBuffer, combinedLight: Int, combinedOverlay: Int, renderBottom: Boolean){
|
private fun renderLayers(layers: DustLayers, matrix: MatrixStack, buffer: IRenderTypeBuffer, combinedLight: Int, combinedOverlay: Int) {
|
||||||
val contents = layers.contents.takeUnless { it.isEmpty() } ?: return
|
val contents = layers.contents.takeUnless { it.isEmpty() } ?: return
|
||||||
val unit = AABB.let { it.maxY - it.minY - (EPSILON_Y * 2) } / layers.totalCapacity
|
val squish = 0.775F + (0.225F * sqrt(contents.sumBy { it.second.toInt() }.toDouble() / layers.totalCapacity))
|
||||||
|
val unit = AABB.let { it.maxY - it.minY - EPSILON_Y_BOTTOM - EPSILON_Y_TOP - FIRST_LAYER_HEIGHT } / layers.totalCapacity / squish
|
||||||
|
|
||||||
val builder = buffer.getBuffer(RENDER_TYPE_LAYERS)
|
val builder = buffer.getBuffer(RENDER_TYPE_LAYERS)
|
||||||
val mat = matrix.last.matrix
|
val mat = matrix.last.matrix
|
||||||
@@ -96,12 +100,12 @@ class RenderTileJarODust(dispatcher: TileEntityRendererDispatcher) : TileEntityR
|
|||||||
val (dustType, dustAmount) = info
|
val (dustType, dustAmount) = info
|
||||||
|
|
||||||
val color = dustType.color
|
val color = dustType.color
|
||||||
val height = dustAmount * unit
|
val height = (if (index == 0) FIRST_LAYER_HEIGHT else 0.0) + (dustAmount * unit)
|
||||||
|
|
||||||
val texMin = minU + ((0.01 + relY * TEX_MP) * texHalfSize).toFloat()
|
val texMin = minU + ((0.01 + relY * TEX_MP) * texHalfSize).toFloat()
|
||||||
val texMax = minU + ((0.01 + (relY + height) * TEX_MP) * texHalfSize).toFloat()
|
val texMax = minU + ((0.01 + (relY + height) * TEX_MP) * texHalfSize).toFloat()
|
||||||
|
|
||||||
val minY = (relY + AABB.minY + EPSILON_Y).toFloat()
|
val minY = (relY + AABB.minY + EPSILON_Y_BOTTOM).toFloat()
|
||||||
val maxY = (minY + height).toFloat()
|
val maxY = (minY + height).toFloat()
|
||||||
|
|
||||||
val sideR = (color[0] / 1.125F).floorToInt().coerceAtLeast(0)
|
val sideR = (color[0] / 1.125F).floorToInt().coerceAtLeast(0)
|
||||||
@@ -130,7 +134,7 @@ class RenderTileJarODust(dispatcher: TileEntityRendererDispatcher) : TileEntityR
|
|||||||
pos(mat, minX, maxY, maxZ).color(sideR, sideG, sideB, 255).tex(texMax, minV).lightmap(combinedLight).overlay(combinedOverlay).endVertex()
|
pos(mat, minX, maxY, maxZ).color(sideR, sideG, sideB, 255).tex(texMax, minV).lightmap(combinedLight).overlay(combinedOverlay).endVertex()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (index == 0 && renderBottom){
|
if (index == 0) {
|
||||||
val bottomR = color[0]
|
val bottomR = color[0]
|
||||||
val bottomG = color[1]
|
val bottomG = color[1]
|
||||||
val bottomB = color[2]
|
val bottomB = color[2]
|
||||||
@@ -162,7 +166,7 @@ class RenderTileJarODust(dispatcher: TileEntityRendererDispatcher) : TileEntityR
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun render(tile: TileEntityJarODust, partialTicks: Float, matrix: MatrixStack, buffer: IRenderTypeBuffer, combinedLight: Int, combinedOverlay: Int) {
|
override fun render(tile: TileEntityJarODust, partialTicks: Float, matrix: MatrixStack, buffer: IRenderTypeBuffer, combinedLight: Int, combinedOverlay: Int) {
|
||||||
renderLayers(tile.layers, matrix, buffer, combinedLight, combinedOverlay, renderBottom = false)
|
renderLayers(tile.layers, matrix, buffer, combinedLight, combinedOverlay)
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeAllEvents(Side.CLIENT, modid = HEE.ID, bus = MOD)
|
@SubscribeAllEvents(Side.CLIENT, modid = HEE.ID, bus = MOD)
|
||||||
@@ -182,12 +186,12 @@ class RenderTileJarODust(dispatcher: TileEntityRendererDispatcher) : TileEntityR
|
|||||||
|
|
||||||
private val layers = DustLayers(TileEntityJarODust.DUST_CAPACITY)
|
private val layers = DustLayers(TileEntityJarODust.DUST_CAPACITY)
|
||||||
|
|
||||||
override fun func_239207_a_(stack: ItemStack, transformType: TransformType, matrix: MatrixStack, buffer: IRenderTypeBuffer, combinedLight: Int, combinedOverlay: Int){
|
override fun render(stack: ItemStack, matrix: MatrixStack, buffer: IRenderTypeBuffer, combinedLight: Int, combinedOverlay: Int) {
|
||||||
val nbt = stack.heeTagOrNull?.getListOfCompounds(TileEntityJarODust.LAYERS_TAG)
|
val nbt = stack.heeTagOrNull?.getListOfCompounds(TileEntityJarODust.LAYERS_TAG)
|
||||||
|
|
||||||
if (nbt != null) {
|
if (nbt != null) {
|
||||||
layers.deserializeNBT(nbt)
|
layers.deserializeNBT(nbt)
|
||||||
renderLayers(layers, matrix, buffer, combinedLight, combinedOverlay, renderBottom = true)
|
renderLayers(layers, matrix, buffer, combinedLight, combinedOverlay)
|
||||||
}
|
}
|
||||||
|
|
||||||
MC.instance.blockRendererDispatcher.blockModelRenderer.renderModel(matrix.last, buffer.getBuffer(Atlases.getTranslucentCullBlockType()), null, MODEL, 1F, 1F, 1F, combinedLight, combinedOverlay, EmptyModelData.INSTANCE)
|
MC.instance.blockRendererDispatcher.blockModelRenderer.renderModel(matrix.last, buffer.getBuffer(Atlases.getTranslucentCullBlockType()), null, MODEL, 1F, 1F, 1F, combinedLight, combinedOverlay, EmptyModelData.INSTANCE)
|
||||||
|
@@ -1,10 +1,11 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import chylex.hee.game.block.entity.TileEntityLootChest
|
import chylex.hee.game.block.entity.TileEntityLootChest
|
||||||
import chylex.hee.init.ModAtlases
|
import chylex.hee.init.ModAtlases
|
||||||
import chylex.hee.system.facades.Resource
|
import chylex.hee.system.facades.Resource
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
import chylex.hee.system.forge.Sided
|
import chylex.hee.system.forge.Sided
|
||||||
import net.minecraft.client.renderer.model.RenderMaterial
|
import net.minecraft.client.renderer.model.Material
|
||||||
import net.minecraft.client.renderer.tileentity.ChestTileEntityRenderer
|
import net.minecraft.client.renderer.tileentity.ChestTileEntityRenderer
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher
|
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher
|
||||||
import net.minecraft.state.properties.ChestType
|
import net.minecraft.state.properties.ChestType
|
||||||
@@ -13,14 +14,14 @@ import net.minecraft.state.properties.ChestType
|
|||||||
class RenderTileLootChest(dispatcher: TileEntityRendererDispatcher) : ChestTileEntityRenderer<TileEntityLootChest>(dispatcher) {
|
class RenderTileLootChest(dispatcher: TileEntityRendererDispatcher) : ChestTileEntityRenderer<TileEntityLootChest>(dispatcher) {
|
||||||
companion object {
|
companion object {
|
||||||
val TEX = Resource.Custom("entity/loot_chest")
|
val TEX = Resource.Custom("entity/loot_chest")
|
||||||
private val MAT = RenderMaterial(ModAtlases.ATLAS_TILES, TEX)
|
private val MAT = Material(ModAtlases.ATLAS_TILES, TEX)
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
isChristmas = false
|
isChristmas = false
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getMaterial(tile: TileEntityLootChest, type: ChestType): RenderMaterial{
|
override fun getMaterial(tile: TileEntityLootChest, type: ChestType): Material {
|
||||||
return MAT
|
return MAT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.client.model.ModelHelper
|
import chylex.hee.client.model.ModelHelper
|
||||||
import chylex.hee.client.render.gl.rotateX
|
import chylex.hee.client.render.gl.rotateX
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import net.minecraft.client.renderer.entity.model.ShulkerModel
|
import net.minecraft.client.renderer.entity.model.ShulkerModel
|
||||||
import net.minecraft.client.renderer.tileentity.ShulkerBoxTileEntityRenderer
|
import net.minecraft.client.renderer.tileentity.ShulkerBoxTileEntityRenderer
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher
|
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.client.render.gl.rotateX
|
import chylex.hee.client.render.gl.rotateX
|
||||||
import chylex.hee.client.render.gl.rotateY
|
import chylex.hee.client.render.gl.rotateY
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.client.model.ModelHelper
|
import chylex.hee.client.model.ModelHelper
|
||||||
import chylex.hee.client.model.getQuads
|
import chylex.hee.client.model.getQuads
|
||||||
@@ -57,7 +58,7 @@ class RenderTileTable(dispatcher: TileEntityRendererDispatcher) : TileEntityRend
|
|||||||
val itemModel = ForgeHooksClient.handleCameraTransforms(matrix, ModelHelper.getItemModel(itemStack), GUI, false)
|
val itemModel = ForgeHooksClient.handleCameraTransforms(matrix, ModelHelper.getItemModel(itemStack), GUI, false)
|
||||||
|
|
||||||
val mat = matrix.last
|
val mat = matrix.last
|
||||||
val builder = ItemRenderer.getBuffer(buffer, RenderTypeLookup.func_239219_a_(itemStack, true), true /* isItem */, false /* hasGlint */)
|
val builder = ItemRenderer.getBuffer(buffer, RenderTypeLookup.getRenderType(itemStack), true /* isItem */, false /* hasGlint */)
|
||||||
|
|
||||||
for(quad in itemModel.getQuads()) {
|
for(quad in itemModel.getQuads()) {
|
||||||
builder.addVertexData(mat, quad, COLOR_SHADE, COLOR_SHADE, COLOR_SHADE, COLOR_ALPHA, LIGHT, OverlayTexture.NO_OVERLAY)
|
builder.addVertexData(mat, quad, COLOR_SHADE, COLOR_SHADE, COLOR_SHADE, COLOR_ALPHA, LIGHT, OverlayTexture.NO_OVERLAY)
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.client.model.ModelHelper
|
import chylex.hee.client.model.ModelHelper
|
||||||
import chylex.hee.client.render.gl.DF_ONE_MINUS_SRC_ALPHA
|
import chylex.hee.client.render.gl.DF_ONE_MINUS_SRC_ALPHA
|
||||||
@@ -23,6 +24,7 @@ import chylex.hee.system.random.nextFloat
|
|||||||
import com.mojang.blaze3d.matrix.MatrixStack
|
import com.mojang.blaze3d.matrix.MatrixStack
|
||||||
import net.minecraft.client.renderer.IRenderTypeBuffer
|
import net.minecraft.client.renderer.IRenderTypeBuffer
|
||||||
import net.minecraft.client.renderer.ItemRenderer
|
import net.minecraft.client.renderer.ItemRenderer
|
||||||
|
import net.minecraft.client.renderer.Matrix4f
|
||||||
import net.minecraft.client.renderer.model.IBakedModel
|
import net.minecraft.client.renderer.model.IBakedModel
|
||||||
import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType.GROUND
|
import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType.GROUND
|
||||||
import net.minecraft.client.renderer.texture.OverlayTexture
|
import net.minecraft.client.renderer.texture.OverlayTexture
|
||||||
@@ -31,7 +33,6 @@ import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher
|
|||||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats
|
import net.minecraft.client.renderer.vertex.DefaultVertexFormats
|
||||||
import net.minecraft.item.Item
|
import net.minecraft.item.Item
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
import net.minecraft.util.math.vector.Matrix4f
|
|
||||||
import org.lwjgl.opengl.GL11
|
import org.lwjgl.opengl.GL11
|
||||||
import java.util.Collections
|
import java.util.Collections
|
||||||
import java.util.Random
|
import java.util.Random
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.block
|
package chylex.hee.client.render.block
|
||||||
|
|
||||||
import chylex.hee.game.block.BlockAbstractPortal
|
import chylex.hee.game.block.BlockAbstractPortal
|
||||||
import chylex.hee.game.block.BlockVoidPortalInner.Companion.TYPE
|
import chylex.hee.game.block.BlockVoidPortalInner.Companion.TYPE
|
||||||
import chylex.hee.game.block.BlockVoidPortalInner.ITerritoryInstanceFactory
|
import chylex.hee.game.block.BlockVoidPortalInner.ITerritoryInstanceFactory
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.entity
|
package chylex.hee.client.render.entity
|
||||||
|
|
||||||
import chylex.hee.client.model.entity.ModelEntityBossEnderEye
|
import chylex.hee.client.model.entity.ModelEntityBossEnderEye
|
||||||
import chylex.hee.client.model.entity.ModelEntityBossEnderEye.SCALE
|
import chylex.hee.client.model.entity.ModelEntityBossEnderEye.SCALE
|
||||||
import chylex.hee.client.render.entity.layer.LayerEnderEyeLaser
|
import chylex.hee.client.render.entity.layer.LayerEnderEyeLaser
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.entity
|
package chylex.hee.client.render.entity
|
||||||
|
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
import chylex.hee.system.forge.Sided
|
import chylex.hee.system.forge.Sided
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.entity
|
package chylex.hee.client.render.entity
|
||||||
|
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
import chylex.hee.system.forge.Sided
|
import chylex.hee.system.forge.Sided
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.entity
|
package chylex.hee.client.render.entity
|
||||||
|
|
||||||
import chylex.hee.client.render.gl.DF_ONE_MINUS_SRC_ALPHA
|
import chylex.hee.client.render.gl.DF_ONE_MINUS_SRC_ALPHA
|
||||||
import chylex.hee.client.render.gl.RenderStateBuilder
|
import chylex.hee.client.render.gl.RenderStateBuilder
|
||||||
import chylex.hee.client.render.gl.RenderStateBuilder.Companion.CULL_DISABLED
|
import chylex.hee.client.render.gl.RenderStateBuilder.Companion.CULL_DISABLED
|
||||||
@@ -115,10 +116,10 @@ open class RenderEntityMobAbstractEnderman(manager: EntityRendererManager) : End
|
|||||||
return if (entity.hurtTime == 0 && entity.isAggro) 2 else 0
|
return if (entity.hurtTime == 0 && entity.isAggro) 2 else 0
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun func_230496_a_(entity: EntityEnderman, isVisible: Boolean, isTranslucent: Boolean, isGlowing: Boolean): RenderType?{
|
override fun func_230042_a_(entity: EntityEnderman, isVisible: Boolean, isTranslucent: Boolean): RenderType? {
|
||||||
return if (isRenderingClone)
|
return if (isRenderingClone)
|
||||||
RENDER_TYPE_CLONE(getEntityTexture(entity))
|
RENDER_TYPE_CLONE(getEntityTexture(entity))
|
||||||
else
|
else
|
||||||
super.func_230496_a_(entity, isVisible, isTranslucent, isGlowing)
|
super.func_230042_a_(entity, isVisible, isTranslucent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.entity
|
package chylex.hee.client.render.entity
|
||||||
|
|
||||||
import chylex.hee.game.entity.living.EntityMobAbstractEnderman
|
import chylex.hee.game.entity.living.EntityMobAbstractEnderman
|
||||||
import chylex.hee.system.forge.Side
|
import chylex.hee.system.forge.Side
|
||||||
import chylex.hee.system.forge.Sided
|
import chylex.hee.system.forge.Sided
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.entity
|
package chylex.hee.client.render.entity
|
||||||
|
|
||||||
import chylex.hee.client.MC
|
import chylex.hee.client.MC
|
||||||
import chylex.hee.client.model.ModelHelper
|
import chylex.hee.client.model.ModelHelper
|
||||||
import chylex.hee.client.model.entity.ModelEntityMobBlobby
|
import chylex.hee.client.model.entity.ModelEntityMobBlobby
|
||||||
@@ -28,7 +29,6 @@ import net.minecraft.client.renderer.RenderType
|
|||||||
import net.minecraft.client.renderer.entity.EntityRendererManager
|
import net.minecraft.client.renderer.entity.EntityRendererManager
|
||||||
import net.minecraft.client.renderer.entity.MobRenderer
|
import net.minecraft.client.renderer.entity.MobRenderer
|
||||||
import net.minecraft.client.renderer.model.IBakedModel
|
import net.minecraft.client.renderer.model.IBakedModel
|
||||||
import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType
|
|
||||||
import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType.GROUND
|
import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType.GROUND
|
||||||
import net.minecraft.client.renderer.texture.OverlayTexture
|
import net.minecraft.client.renderer.texture.OverlayTexture
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
@@ -67,7 +67,7 @@ class RenderEntityMobBlobby(manager: EntityRendererManager) : MobRenderer<Entity
|
|||||||
super.render(entity, yaw, partialTicks, matrix, buffer, combinedLight)
|
super.render(entity, yaw, partialTicks, matrix, buffer, combinedLight)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun func_230496_a_(entity: EntityMobBlobby, isVisible: Boolean, isTranslucent: Boolean, isGlowing: Boolean): RenderType{
|
override fun func_230042_a_(entity: EntityMobBlobby, isVisible: Boolean, isTranslucent: Boolean): RenderType {
|
||||||
return renderType
|
return renderType
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,8 +112,8 @@ class RenderEntityMobBlobby(manager: EntityRendererManager) : MobRenderer<Entity
|
|||||||
else -> null // POLISH implement more special cases
|
else -> null // POLISH implement more special cases
|
||||||
}
|
}
|
||||||
|
|
||||||
if (overrideType != null){ // UPDATE test transform
|
if (overrideType != null) {
|
||||||
stack.item.itemStackTileEntityRenderer.func_239207_a_(stack, TransformType.NONE, matrix, { buffer.getBuffer(overrideType) }, combinedLight, OverlayTexture.NO_OVERLAY)
|
stack.item.itemStackTileEntityRenderer.render(stack, matrix, { buffer.getBuffer(overrideType) }, combinedLight, OverlayTexture.NO_OVERLAY)
|
||||||
}
|
}
|
||||||
else if (stack !== fallbackStack) {
|
else if (stack !== fallbackStack) {
|
||||||
matrix.pop()
|
matrix.pop()
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
package chylex.hee.client.render.entity
|
package chylex.hee.client.render.entity
|
||||||
|
|
||||||
import chylex.hee.client.render.entity.layer.LayerSpiderlingEyes
|
import chylex.hee.client.render.entity.layer.LayerSpiderlingEyes
|
||||||
import chylex.hee.client.render.gl.scale
|
import chylex.hee.client.render.gl.scale
|
||||||
import chylex.hee.game.entity.living.EntityMobSpiderling
|
import chylex.hee.game.entity.living.EntityMobSpiderling
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user