chorus plant but with broken textures and other stuff broken
This commit is contained in:
parent
a192b7b5b7
commit
e8fae5b248
|
@ -1,4 +1,4 @@
|
||||||
@echo off
|
@echo off
|
||||||
title MakeSignedClient
|
title MakeSignedClient
|
||||||
java -cp "desktopRuntime/MakeOfflineDownload.jar;desktopRuntime/CompileEPK.jar" net.lax1dude.eaglercraft.v1_8.buildtools.workspace.MakeSignedClient "javascript/SignedBundleTemplate.txt" "javascript/classes.js" "javascript/assets.epk" "javascript/lang" "javascript/SignedClientTemplate.txt" "javascript/UpdateDownloadSources.txt" "javascript/EaglercraftX_1.8_Offline_Signed_Client.html"
|
java -cp "resources/MakeOfflineDownload.jar;resources/CompileEPK.jar" net.lax1dude.eaglercraft.v1_8.buildtools.workspace.MakeSignedClient "javascript/SignedBundleTemplate.txt" "javascript/classes.js" "javascript/assets.epk" "javascript/lang" "javascript/SignedClientTemplate.txt" "javascript/UpdateDownloadSources.txt" "javascript/EaglercraftX_1.8_Offline_Signed_Client.html"
|
||||||
pause
|
pause
|
|
@ -23,7 +23,7 @@ dependencies {
|
||||||
}
|
}
|
||||||
|
|
||||||
teavm.js {
|
teavm.js {
|
||||||
obfuscated = true
|
obfuscated = false
|
||||||
sourceMap = false
|
sourceMap = false
|
||||||
targetFileName = "../classes.js"
|
targetFileName = "../classes.js"
|
||||||
optimization = org.teavm.gradle.api.OptimizationLevel.AGGRESSIVE
|
optimization = org.teavm.gradle.api.OptimizationLevel.AGGRESSIVE
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"age=0": { "model": "chorus_flower" },
|
||||||
|
"age=1": { "model": "chorus_flower" },
|
||||||
|
"age=2": { "model": "chorus_flower" },
|
||||||
|
"age=3": { "model": "chorus_flower" },
|
||||||
|
"age=4": { "model": "chorus_flower" },
|
||||||
|
"age=5": { "model": "chorus_flower_dead" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"down=false,east=false,north=false,south=false,up=false,west=false": { "model": "cobblestone_wall_post" },
|
||||||
|
"down=false,east=false,north=true,south=false,up=false,west=false": { "model": "cobblestone_wall_n" },
|
||||||
|
"down=false,east=true,north=false,south=false,up=false,west=false": { "model": "cobblestone_wall_n", "y": 90, "uvlock": true },
|
||||||
|
"down=false,east=false,north=false,south=true,up=false,west=false": { "model": "cobblestone_wall_n", "y": 180, "uvlock": true },
|
||||||
|
"down=false,east=false,north=false,south=false,up=false,west=true": { "model": "cobblestone_wall_n", "y": 270, "uvlock": true },
|
||||||
|
"down=false,east=true,north=true,south=false,up=false,west=false": { "model": "cobblestone_wall_ne" },
|
||||||
|
"down=false,east=true,north=false,south=true,up=false,west=false": { "model": "cobblestone_wall_ne", "y": 90, "uvlock": true },
|
||||||
|
"down=false,east=false,north=false,south=true,up=false,west=true": { "model": "cobblestone_wall_ne", "y": 180, "uvlock": true },
|
||||||
|
"down=false,east=false,north=true,south=false,up=false,west=true": { "model": "cobblestone_wall_ne", "y": 270, "uvlock": true },
|
||||||
|
"down=false,east=false,north=true,south=true,up=false,west=false": { "model": "cobblestone_wall_ns" },
|
||||||
|
"down=false,east=true,north=false,south=false,up=false,west=true": { "model": "cobblestone_wall_ns", "y": 90, "uvlock": true },
|
||||||
|
"down=false,east=true,north=true,south=true,up=false,west=false": { "model": "cobblestone_wall_nse" },
|
||||||
|
"down=false,east=true,north=false,south=true,up=false,west=true": { "model": "cobblestone_wall_nse", "y": 90, "uvlock": true },
|
||||||
|
"down=false,east=false,north=true,south=true,up=false,west=true": { "model": "cobblestone_wall_nse", "y": 180, "uvlock": true },
|
||||||
|
"down=false,east=true,north=true,south=false,up=false,west=true": { "model": "cobblestone_wall_nse", "y": 270, "uvlock": true },
|
||||||
|
"down=false,east=true,north=true,south=true,up=false,west=true": { "model": "cobblestone_wall_nsew" },
|
||||||
|
"down=false,east=false,north=false,south=false,up=true,west=false": { "model": "cobblestone_wall_post" },
|
||||||
|
"down=false,east=false,north=true,south=false,up=true,west=false": { "model": "cobblestone_wall_n" },
|
||||||
|
"down=false,east=true,north=false,south=false,up=true,west=false": { "model": "cobblestone_wall_n", "y": 90, "uvlock": true },
|
||||||
|
"down=false,east=false,north=false,south=true,up=true,west=false": { "model": "cobblestone_wall_n", "y": 180, "uvlock": true },
|
||||||
|
"down=false,east=false,north=false,south=false,up=true,west=true": { "model": "cobblestone_wall_n", "y": 270, "uvlock": true },
|
||||||
|
"down=false,east=true,north=true,south=false,up=true,west=false": { "model": "cobblestone_wall_ne" },
|
||||||
|
"down=false,east=true,north=false,south=true,up=true,west=false": { "model": "cobblestone_wall_ne", "y": 90, "uvlock": true },
|
||||||
|
"down=false,east=false,north=false,south=true,up=true,west=true": { "model": "cobblestone_wall_ne", "y": 180, "uvlock": true },
|
||||||
|
"down=false,east=false,north=true,south=false,up=true,west=true": { "model": "cobblestone_wall_ne", "y": 270, "uvlock": true },
|
||||||
|
"down=false,east=false,north=true,south=true,up=true,west=false": { "model": "cobblestone_wall_ns_above" },
|
||||||
|
"down=false,east=true,north=false,south=false,up=true,west=true": { "model": "cobblestone_wall_ns_above", "y": 90, "uvlock": true },
|
||||||
|
"down=false,east=true,north=true,south=true,up=true,west=false": { "model": "cobblestone_wall_nse" },
|
||||||
|
"down=false,east=true,north=false,south=true,up=true,west=true": { "model": "cobblestone_wall_nse", "y": 90, "uvlock": true },
|
||||||
|
"down=false,east=false,north=true,south=true,up=true,west=true": { "model": "cobblestone_wall_nse", "y": 180, "uvlock": true },
|
||||||
|
"down=false,east=true,north=true,south=false,up=true,west=true": { "model": "cobblestone_wall_nse", "y": 270, "uvlock": true },
|
||||||
|
"down=false,east=true,north=true,south=true,up=true,west=true": { "model": "cobblestone_wall_nsew" },
|
||||||
|
|
||||||
|
"down=true,east=false,north=false,south=false,up=false,west=false": { "model": "cobblestone_wall_post" },
|
||||||
|
"down=true,east=false,north=true,south=false,up=false,west=false": { "model": "cobblestone_wall_n" },
|
||||||
|
"down=true,east=true,north=false,south=false,up=false,west=false": { "model": "cobblestone_wall_n", "y": 90, "uvlock": true },
|
||||||
|
"down=true,east=false,north=false,south=true,up=false,west=false": { "model": "cobblestone_wall_n", "y": 180, "uvlock": true },
|
||||||
|
"down=true,east=false,north=false,south=false,up=false,west=true": { "model": "cobblestone_wall_n", "y": 270, "uvlock": true },
|
||||||
|
"down=true,east=true,north=true,south=false,up=false,west=false": { "model": "cobblestone_wall_ne" },
|
||||||
|
"down=true,east=true,north=false,south=true,up=false,west=false": { "model": "cobblestone_wall_ne", "y": 90, "uvlock": true },
|
||||||
|
"down=true,east=false,north=false,south=true,up=false,west=true": { "model": "cobblestone_wall_ne", "y": 180, "uvlock": true },
|
||||||
|
"down=true,east=false,north=true,south=false,up=false,west=true": { "model": "cobblestone_wall_ne", "y": 270, "uvlock": true },
|
||||||
|
"down=true,east=false,north=true,south=true,up=false,west=false": { "model": "cobblestone_wall_ns" },
|
||||||
|
"down=true,east=true,north=false,south=false,up=false,west=true": { "model": "cobblestone_wall_ns", "y": 90, "uvlock": true },
|
||||||
|
"down=true,east=true,north=true,south=true,up=false,west=false": { "model": "cobblestone_wall_nse" },
|
||||||
|
"down=true,east=true,north=false,south=true,up=false,west=true": { "model": "cobblestone_wall_nse", "y": 90, "uvlock": true },
|
||||||
|
"down=true,east=false,north=true,south=true,up=false,west=true": { "model": "cobblestone_wall_nse", "y": 180, "uvlock": true },
|
||||||
|
"down=true,east=true,north=true,south=false,up=false,west=true": { "model": "cobblestone_wall_nse", "y": 270, "uvlock": true },
|
||||||
|
"down=true,east=true,north=true,south=true,up=false,west=true": { "model": "cobblestone_wall_nsew" },
|
||||||
|
"down=true,east=false,north=false,south=false,up=true,west=false": { "model": "cobblestone_wall_post" },
|
||||||
|
"down=true,east=false,north=true,south=false,up=true,west=false": { "model": "cobblestone_wall_n" },
|
||||||
|
"down=true,east=true,north=false,south=false,up=true,west=false": { "model": "cobblestone_wall_n", "y": 90, "uvlock": true },
|
||||||
|
"down=true,east=false,north=false,south=true,up=true,west=false": { "model": "cobblestone_wall_n", "y": 180, "uvlock": true },
|
||||||
|
"down=true,east=false,north=false,south=false,up=true,west=true": { "model": "cobblestone_wall_n", "y": 270, "uvlock": true },
|
||||||
|
"down=true,east=true,north=true,south=false,up=true,west=false": { "model": "cobblestone_wall_ne" },
|
||||||
|
"down=true,east=true,north=false,south=true,up=true,west=false": { "model": "cobblestone_wall_ne", "y": 90, "uvlock": true },
|
||||||
|
"down=true,east=false,north=false,south=true,up=true,west=true": { "model": "cobblestone_wall_ne", "y": 180, "uvlock": true },
|
||||||
|
"down=true,east=false,north=true,south=false,up=true,west=true": { "model": "cobblestone_wall_ne", "y": 270, "uvlock": true },
|
||||||
|
"down=true,east=false,north=true,south=true,up=true,west=false": { "model": "cobblestone_wall_ns_above" },
|
||||||
|
"down=true,east=true,north=false,south=false,up=true,west=true": { "model": "cobblestone_wall_ns_above", "y": 90, "uvlock": true },
|
||||||
|
"down=true,east=true,north=true,south=true,up=true,west=false": { "model": "cobblestone_wall_nse" },
|
||||||
|
"down=true,east=true,north=false,south=true,up=true,west=true": { "model": "cobblestone_wall_nse", "y": 90, "uvlock": true },
|
||||||
|
"down=true,east=false,north=true,south=true,up=true,west=true": { "model": "cobblestone_wall_nse", "y": 180, "uvlock": true },
|
||||||
|
"down=true,east=true,north=true,south=false,up=true,west=true": { "model": "cobblestone_wall_nse", "y": 270, "uvlock": true },
|
||||||
|
"down=true,east=true,north=true,south=true,up=true,west=true": { "model": "cobblestone_wall_nsew" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,76 @@
|
||||||
|
{
|
||||||
|
"textures": {
|
||||||
|
"texture": "blocks/chorus_flower",
|
||||||
|
"bottom": "blocks/chorus_plant",
|
||||||
|
"particle": "blocks/chorus_flower"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [ 2, 14, 2 ],
|
||||||
|
"to": [ 14, 16, 14 ],
|
||||||
|
"faces": {
|
||||||
|
"up": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture" },
|
||||||
|
"north": { "uv": [ 2, 0, 14, 2 ], "texture": "#bottom" },
|
||||||
|
"south": { "uv": [ 2, 0, 14, 2 ], "texture": "#bottom" },
|
||||||
|
"west": { "uv": [ 2, 0, 14, 2 ], "texture": "#bottom" },
|
||||||
|
"east": { "uv": [ 2, 0, 14, 2 ], "texture": "#bottom" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [ 0, 2, 2 ],
|
||||||
|
"to": [ 2, 14, 14 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 16, 14, 14, 2 ], "texture": "#bottom" },
|
||||||
|
"up": { "uv": [ 0, 2, 2, 14 ], "texture": "#bottom" },
|
||||||
|
"north": { "uv": [ 14, 2, 16, 14 ], "texture": "#bottom" },
|
||||||
|
"south": { "uv": [ 0, 2, 2, 14 ], "texture": "#bottom" },
|
||||||
|
"west": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [ 2, 2, 0 ],
|
||||||
|
"to": [ 14, 14, 2 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 14, 2, 2, 0 ], "texture": "#bottom" },
|
||||||
|
"up": { "uv": [ 2, 0, 14, 2 ], "texture": "#bottom" },
|
||||||
|
"north": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 0, 2, 2, 14 ], "texture": "#bottom" },
|
||||||
|
"east": { "uv": [ 14, 2, 16, 14 ], "texture": "#bottom" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [ 2, 2, 14 ],
|
||||||
|
"to": [ 14, 14, 16 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 14, 16, 2, 14 ], "texture": "#bottom" },
|
||||||
|
"up": { "uv": [ 2, 14, 14, 16 ], "texture": "#bottom" },
|
||||||
|
"south": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 14, 2, 16, 14 ], "texture": "#bottom" },
|
||||||
|
"east": { "uv": [ 0, 2, 2, 14 ], "texture": "#bottom" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [ 14, 2, 2 ],
|
||||||
|
"to": [ 16, 14, 14 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 2, 14, 0, 2 ], "texture": "#bottom" },
|
||||||
|
"up": { "uv": [ 14, 2, 16, 14 ], "texture": "#bottom" },
|
||||||
|
"north": { "uv": [ 0, 2, 2, 14 ], "texture": "#bottom" },
|
||||||
|
"south": { "uv": [ 14, 2, 16, 14 ], "texture": "#bottom" },
|
||||||
|
"east": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [ 2, 0, 2 ],
|
||||||
|
"to": [ 14, 14, 14 ],
|
||||||
|
"faces": {
|
||||||
|
"up": { "uv": [ 2, 2, 14, 14 ], "texture": "#bottom" },
|
||||||
|
"down": { "uv": [ 14, 14, 2, 2 ], "texture": "#bottom" },
|
||||||
|
"north": { "uv": [ 2, 2, 14, 16 ], "texture": "#bottom" },
|
||||||
|
"south": { "uv": [ 2, 2, 14, 16 ], "texture": "#bottom" },
|
||||||
|
"west": { "uv": [ 2, 2, 14, 16 ], "texture": "#bottom" },
|
||||||
|
"east": { "uv": [ 2, 2, 14, 16 ], "texture": "#bottom" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/chorus_flower",
|
||||||
|
"textures": {
|
||||||
|
"texture": "blocks/chorus_flower_dead",
|
||||||
|
"bottom": "blocks/chorus_plant",
|
||||||
|
"particle": "blocks/chorus_flower_dead"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"parent": "block/chorus_flower",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"parent": "block/chorus_plant",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 325 B |
Binary file not shown.
After Width: | Height: | Size: 328 B |
Binary file not shown.
After Width: | Height: | Size: 300 B |
|
@ -9,7 +9,7 @@ public class EaglercraftVersion {
|
||||||
/// Customize these to fit your fork:
|
/// Customize these to fit your fork:
|
||||||
|
|
||||||
public static final String projectForkName = "Eaglercraft Lambda";
|
public static final String projectForkName = "Eaglercraft Lambda";
|
||||||
public static final String projectForkVersion = "0.4.0";
|
public static final String projectForkVersion = "0.5.0";
|
||||||
public static final String projectForkVendor = "HoosierTransfer";
|
public static final String projectForkVendor = "HoosierTransfer";
|
||||||
|
|
||||||
public static final String projectForkURL = "https://gitlab.com/lax1dude/eaglercraftx-1.8";
|
public static final String projectForkURL = "https://gitlab.com/lax1dude/eaglercraftx-1.8";
|
||||||
|
@ -25,7 +25,7 @@ public class EaglercraftVersion {
|
||||||
|
|
||||||
// Updating configuration
|
// Updating configuration
|
||||||
|
|
||||||
public static final boolean enableUpdateService = false;
|
public static final boolean enableUpdateService = true;
|
||||||
|
|
||||||
public static final String updateBundlePackageName = "net.lax1dude.eaglercraft.v1_8.client";
|
public static final String updateBundlePackageName = "net.lax1dude.eaglercraft.v1_8.client";
|
||||||
public static final int updateBundlePackageVersionInt = 34;
|
public static final int updateBundlePackageVersionInt = 34;
|
||||||
|
@ -34,7 +34,7 @@ public class EaglercraftVersion {
|
||||||
|
|
||||||
// public key modulus for official 1.8 updates
|
// public key modulus for official 1.8 updates
|
||||||
public static final BigInteger updateSignatureModulus = new BigInteger(
|
public static final BigInteger updateSignatureModulus = new BigInteger(
|
||||||
"14419476194820052109078379102436982757438300194194974078260570958862225232043861026588258585967060437391326494976080031137298500457111529693806931143421725626747051503616606418909609840275122831550688481329699012469742002429706330734797679859799085213517354399295425740214330234086361416936984593337389989505613123225737002654977194421571825036717017788527234114501215218715499682638139386636103589791643964827904791195488978835113700772208317974307363542114867750505953323167521731238542123593257269990619007858952216110012513121779359926747737258698347806747854986471035713105133999027704095451858121831297923962641");
|
"12088549851624177860210943411753655526838509034327995616720692424931008612895944876178950804800321958658462759341402746623561871401936016063273640247854365676101972751135312958392926810145663068155970896641899900239550667101300685784386254169669408095656719430822905698686750635336744968457512771731599692858855652595492376493019401900777022004925137632047976612790150686906616724035637000868200868976467177296602193750297858734359875260209443581507599782350356643360703727081218369273052261747935073314281655275443613909971524354128310805834911244411349268175047406262508184956239724493043763824375071966003574715449");
|
||||||
|
|
||||||
// Miscellaneous variables:
|
// Miscellaneous variables:
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,8 @@ public class UpdateService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean supported() {
|
public static boolean supported() {
|
||||||
return EaglercraftVersion.enableUpdateService && EagRuntime.getConfiguration().allowUpdateSvc()
|
return EaglercraftVersion.enableUpdateService &&
|
||||||
|
EagRuntime.getConfiguration().allowUpdateSvc()
|
||||||
&& PlatformUpdateSvc.supported();
|
&& PlatformUpdateSvc.supported();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@ package net.minecraft.block;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import net.hoosiertransfer.EaglerItems;
|
import net.hoosiertransfer.EaglerItems;
|
||||||
import net.hoosiertransfer.Alfheim.ILightInfoProvider;
|
import net.hoosiertransfer.Alfheim.ILightInfoProvider;
|
||||||
import net.hoosiertransfer.Alfheim.ILightLevelProvider;
|
import net.hoosiertransfer.Alfheim.ILightLevelProvider;
|
||||||
|
@ -492,6 +494,17 @@ public class Block implements ILitBlock {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static void addCollisionBoxToList(BlockPos pos, AxisAlignedBB entityBox,
|
||||||
|
List<AxisAlignedBB> collidingBoxes, @Nullable AxisAlignedBB blockBox) {
|
||||||
|
if (blockBox != null) {
|
||||||
|
AxisAlignedBB axisalignedbb = blockBox.offset(pos);
|
||||||
|
|
||||||
|
if (entityBox.intersectsWith(axisalignedbb)) {
|
||||||
|
collidingBoxes.add(axisalignedbb);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public AxisAlignedBB getCollisionBoundingBox(World var1, BlockPos blockpos, IBlockState var3) {
|
public AxisAlignedBB getCollisionBoundingBox(World var1, BlockPos blockpos, IBlockState var3) {
|
||||||
return new AxisAlignedBB((double) blockpos.getX() + this.minX, (double) blockpos.getY() + this.minY,
|
return new AxisAlignedBB((double) blockpos.getX() + this.minX, (double) blockpos.getY() + this.minY,
|
||||||
(double) blockpos.getZ() + this.minZ, (double) blockpos.getX() + this.maxX,
|
(double) blockpos.getZ() + this.minZ, (double) blockpos.getX() + this.maxX,
|
||||||
|
@ -1645,6 +1658,13 @@ public class Block implements ILitBlock {
|
||||||
registerEaglerBlock(198, "end_rod", (new BlockEndRod()).setHardness(0.0F).setLightLevel(0.9375F)
|
registerEaglerBlock(198, "end_rod", (new BlockEndRod()).setHardness(0.0F).setLightLevel(0.9375F)
|
||||||
.setStepSound(soundTypeWood).setUnlocalizedName("endRod"));
|
.setStepSound(soundTypeWood).setUnlocalizedName("endRod"));
|
||||||
|
|
||||||
|
registerEaglerBlock(199, "chorus_plant",
|
||||||
|
(new BlockChorusPlant()).setHardness(0.4F).setStepSound(soundTypeWood)
|
||||||
|
.setUnlocalizedName("chorusPlant"));
|
||||||
|
registerEaglerBlock(200, "chorus_flower",
|
||||||
|
(new BlockChorusFlower()).setHardness(0.4F).setStepSound(soundTypeWood)
|
||||||
|
.setUnlocalizedName("chorusFlower"));
|
||||||
|
|
||||||
Block purpurBlock = (new Block(Material.rock)).setHardness(1.5F).setResistance(10.0F)
|
Block purpurBlock = (new Block(Material.rock)).setHardness(1.5F).setResistance(10.0F)
|
||||||
.setStepSound(soundTypeStone).setCreativeTab(CreativeTabs.tabBlock).setUnlocalizedName("purpurBlock");
|
.setStepSound(soundTypeStone).setCreativeTab(CreativeTabs.tabBlock).setUnlocalizedName("purpurBlock");
|
||||||
registerEaglerBlock(201, (String) "purpur_block", purpurBlock);
|
registerEaglerBlock(201, (String) "purpur_block", purpurBlock);
|
||||||
|
|
|
@ -0,0 +1,277 @@
|
||||||
|
package net.minecraft.block;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import net.hoosiertransfer.EaglerItems;
|
||||||
|
import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.block.properties.IProperty;
|
||||||
|
import net.minecraft.block.properties.PropertyInteger;
|
||||||
|
import net.minecraft.block.state.BlockState;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.BlockPos;
|
||||||
|
import net.minecraft.util.EnumFacing;
|
||||||
|
import net.minecraft.util.EnumWorldBlockLayer;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class BlockChorusFlower extends Block {
|
||||||
|
public static final PropertyInteger AGE = PropertyInteger.create("age", 0, 5);
|
||||||
|
|
||||||
|
protected BlockChorusFlower() {
|
||||||
|
super(Material.plants);
|
||||||
|
this.setDefaultState(this.blockState.getBaseState().withProperty(AGE, Integer.valueOf(0)));
|
||||||
|
this.setCreativeTab(CreativeTabs.tabDecorations);
|
||||||
|
this.setTickRandomly(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the Item that this Block should drop when harvested.
|
||||||
|
*/
|
||||||
|
public Item getItemDropped(IBlockState state, Random rand, int fortune) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateTick(World worldIn, BlockPos pos, IBlockState state, EaglercraftRandom rand) {
|
||||||
|
if (!this.canSurvive(worldIn, pos)) {
|
||||||
|
worldIn.destroyBlock(pos, true);
|
||||||
|
} else {
|
||||||
|
BlockPos blockpos = pos.up();
|
||||||
|
|
||||||
|
if (worldIn.isAirBlock(blockpos) && blockpos.getY() < 256) {
|
||||||
|
int i = ((Integer) state.getValue(AGE)).intValue();
|
||||||
|
|
||||||
|
if (i < 5 && rand.nextInt(1) == 0) {
|
||||||
|
boolean flag = false;
|
||||||
|
boolean flag1 = false;
|
||||||
|
Block block = worldIn.getBlockState(pos.down()).getBlock();
|
||||||
|
|
||||||
|
if (block == Blocks.end_stone) {
|
||||||
|
flag = true;
|
||||||
|
} else if (block == EaglerItems.getEaglerBlock("chorus_plant")) {
|
||||||
|
int j = 1;
|
||||||
|
|
||||||
|
for (int k = 0; k < 4; ++k) {
|
||||||
|
Block block1 = worldIn.getBlockState(pos.down(j + 1)).getBlock();
|
||||||
|
|
||||||
|
if (block1 != EaglerItems.getEaglerBlock("chorus_plant")) {
|
||||||
|
if (block1 == Blocks.end_stone) {
|
||||||
|
flag1 = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
++j;
|
||||||
|
}
|
||||||
|
|
||||||
|
int i1 = 4;
|
||||||
|
|
||||||
|
if (flag1) {
|
||||||
|
++i1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (j < 2 || rand.nextInt(i1) >= j) {
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
} else if (block == Blocks.air) {
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flag && areAllNeighborsEmpty(worldIn, blockpos, (EnumFacing) null)
|
||||||
|
&& worldIn.isAirBlock(pos.up(2))) {
|
||||||
|
worldIn.setBlockState(pos, EaglerItems.getEaglerBlock("chorus_plant").getDefaultState(), 2);
|
||||||
|
this.placeGrownFlower(worldIn, blockpos, i);
|
||||||
|
} else if (i < 4) {
|
||||||
|
int l = rand.nextInt(4);
|
||||||
|
boolean flag2 = false;
|
||||||
|
|
||||||
|
if (flag1) {
|
||||||
|
++l;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int j1 = 0; j1 < l; ++j1) {
|
||||||
|
EnumFacing enumfacing = EnumFacing.Plane.HORIZONTAL.random(rand);
|
||||||
|
BlockPos blockpos1 = pos.offset(enumfacing);
|
||||||
|
|
||||||
|
if (worldIn.isAirBlock(blockpos1) && worldIn.isAirBlock(blockpos1.down())
|
||||||
|
&& areAllNeighborsEmpty(worldIn, blockpos1, enumfacing.getOpposite())) {
|
||||||
|
this.placeGrownFlower(worldIn, blockpos1, i + 1);
|
||||||
|
flag2 = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flag2) {
|
||||||
|
worldIn.setBlockState(pos, EaglerItems.getEaglerBlock("chorus_plant").getDefaultState(), 2);
|
||||||
|
} else {
|
||||||
|
this.placeDeadFlower(worldIn, pos);
|
||||||
|
}
|
||||||
|
} else if (i == 4) {
|
||||||
|
this.placeDeadFlower(worldIn, pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void placeGrownFlower(World p_185602_1_, BlockPos p_185602_2_, int p_185602_3_) {
|
||||||
|
p_185602_1_.setBlockState(p_185602_2_, this.getDefaultState().withProperty(AGE, Integer.valueOf(p_185602_3_)),
|
||||||
|
2);
|
||||||
|
// TODO: implement soundf
|
||||||
|
// p_185602_1_.playAuxSFX(1033, p_185602_2_, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void placeDeadFlower(World p_185605_1_, BlockPos p_185605_2_) {
|
||||||
|
p_185605_1_.setBlockState(p_185605_2_, this.getDefaultState().withProperty(AGE, Integer.valueOf(5)), 2);
|
||||||
|
// p_185605_1_.playAuxSFX(1034, p_185605_2_, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean areAllNeighborsEmpty(World p_185604_0_, BlockPos p_185604_1_, EnumFacing p_185604_2_) {
|
||||||
|
for (EnumFacing enumfacing : EnumFacing.Plane.HORIZONTAL) {
|
||||||
|
if (enumfacing != p_185604_2_ && !p_185604_0_.isAirBlock(p_185604_1_.offset(enumfacing))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFullCube() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOpaqueCube() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canPlaceBlockAt(World worldIn, BlockPos pos) {
|
||||||
|
return super.canPlaceBlockAt(worldIn, pos) && this.canSurvive(worldIn, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onNeighborBlockChange(IBlockState p_189540_1_, World p_189540_2_, BlockPos p_189540_3_,
|
||||||
|
Block p_189540_4_) {
|
||||||
|
if (!this.canSurvive(p_189540_2_, p_189540_3_)) {
|
||||||
|
p_189540_2_.scheduleUpdate(p_189540_3_, this, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canSurvive(World worldIn, BlockPos pos) {
|
||||||
|
Block block = worldIn.getBlockState(pos.down()).getBlock();
|
||||||
|
|
||||||
|
if (block != EaglerItems.getEaglerBlock("chorus_plant") && block != Blocks.end_stone) {
|
||||||
|
if (block == Blocks.air) {
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
for (EnumFacing enumfacing : EnumFacing.Plane.HORIZONTAL) {
|
||||||
|
Block block1 = worldIn.getBlockState(pos.offset(enumfacing)).getBlock();
|
||||||
|
|
||||||
|
if (block1 == EaglerItems.getEaglerBlock("chorus_plant")) {
|
||||||
|
++i;
|
||||||
|
} else if (block1 != Blocks.air) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return i == 1;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void harvestBlock(World worldIn, EntityPlayer player, BlockPos pos, IBlockState state,
|
||||||
|
@Nullable TileEntity te) {
|
||||||
|
super.harvestBlock(worldIn, player, pos, state, te);
|
||||||
|
spawnAsEntity(worldIn, pos, new ItemStack(Item.getItemFromBlock(this)));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected ItemStack createStackedBlock(IBlockState state) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EnumWorldBlockLayer getBlockLayer() {
|
||||||
|
return EnumWorldBlockLayer.CUTOUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IBlockState getStateFromMeta(int meta) {
|
||||||
|
return this.getDefaultState().withProperty(AGE, Integer.valueOf(meta));
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMetaFromState(IBlockState state) {
|
||||||
|
return ((Integer) state.getValue(AGE)).intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected BlockState createBlockState() {
|
||||||
|
return new BlockState(this, new IProperty[] { AGE });
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) {
|
||||||
|
super.onBlockAdded(worldIn, pos, state);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void generatePlant(World worldIn, BlockPos pos, EaglercraftRandom rand, int p_185603_3_) {
|
||||||
|
worldIn.setBlockState(pos, EaglerItems.getEaglerBlock("chorus_plant").getDefaultState(), 2);
|
||||||
|
growTreeRecursive(worldIn, pos, rand, pos, p_185603_3_, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void growTreeRecursive(World worldIn, BlockPos p_185601_1_, EaglercraftRandom rand,
|
||||||
|
BlockPos p_185601_3_,
|
||||||
|
int p_185601_4_, int p_185601_5_) {
|
||||||
|
int i = rand.nextInt(4) + 1;
|
||||||
|
|
||||||
|
if (p_185601_5_ == 0) {
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int j = 0; j < i; ++j) {
|
||||||
|
BlockPos blockpos = p_185601_1_.up(j + 1);
|
||||||
|
|
||||||
|
if (!areAllNeighborsEmpty(worldIn, blockpos, (EnumFacing) null)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
worldIn.setBlockState(blockpos, EaglerItems.getEaglerBlock("chorus_plant").getDefaultState(), 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean flag = false;
|
||||||
|
|
||||||
|
if (p_185601_5_ < 4) {
|
||||||
|
int l = rand.nextInt(4);
|
||||||
|
|
||||||
|
if (p_185601_5_ == 0) {
|
||||||
|
++l;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int k = 0; k < l; ++k) {
|
||||||
|
EnumFacing enumfacing = EnumFacing.Plane.HORIZONTAL.random(rand);
|
||||||
|
BlockPos blockpos1 = p_185601_1_.up(i).offset(enumfacing);
|
||||||
|
|
||||||
|
if (Math.abs(blockpos1.getX() - p_185601_3_.getX()) < p_185601_4_
|
||||||
|
&& Math.abs(blockpos1.getZ() - p_185601_3_.getZ()) < p_185601_4_
|
||||||
|
&& worldIn.isAirBlock(blockpos1) && worldIn.isAirBlock(blockpos1.down())
|
||||||
|
&& areAllNeighborsEmpty(worldIn, blockpos1, enumfacing.getOpposite())) {
|
||||||
|
flag = true;
|
||||||
|
worldIn.setBlockState(blockpos1, EaglerItems.getEaglerBlock("chorus_plant").getDefaultState(), 2);
|
||||||
|
growTreeRecursive(worldIn, blockpos1, rand, p_185601_3_, p_185601_4_, p_185601_5_ + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!flag) {
|
||||||
|
worldIn.setBlockState(p_185601_1_.up(i),
|
||||||
|
EaglerItems.getEaglerBlock("chorus_plant").getDefaultState().withProperty(AGE, Integer.valueOf(5)),
|
||||||
|
2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,221 @@
|
||||||
|
package net.minecraft.block;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import net.hoosiertransfer.EaglerItems;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.block.properties.IProperty;
|
||||||
|
import net.minecraft.block.properties.PropertyBool;
|
||||||
|
import net.minecraft.block.state.BlockState;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
import net.minecraft.init.Items;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.BlockPos;
|
||||||
|
import net.minecraft.util.EnumFacing;
|
||||||
|
import net.minecraft.util.EnumWorldBlockLayer;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class BlockChorusPlant extends Block {
|
||||||
|
public static final PropertyBool NORTH = PropertyBool.create("north");
|
||||||
|
public static final PropertyBool EAST = PropertyBool.create("east");
|
||||||
|
public static final PropertyBool SOUTH = PropertyBool.create("south");
|
||||||
|
public static final PropertyBool WEST = PropertyBool.create("west");
|
||||||
|
public static final PropertyBool UP = PropertyBool.create("up");
|
||||||
|
public static final PropertyBool DOWN = PropertyBool.create("down");
|
||||||
|
|
||||||
|
protected BlockChorusPlant() {
|
||||||
|
super(Material.plants);
|
||||||
|
this.setCreativeTab(CreativeTabs.tabDecorations);
|
||||||
|
this.setDefaultState(this.blockState.getBaseState().withProperty(NORTH, Boolean.valueOf(false))
|
||||||
|
.withProperty(EAST, Boolean.valueOf(false)).withProperty(SOUTH, Boolean.valueOf(false))
|
||||||
|
.withProperty(WEST, Boolean.valueOf(false)).withProperty(UP, Boolean.valueOf(false))
|
||||||
|
.withProperty(DOWN, Boolean.valueOf(false)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual Block state of this Block at the given position. This applies
|
||||||
|
* properties not visible in the
|
||||||
|
* metadata, such as fence connections.
|
||||||
|
*/
|
||||||
|
public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) {
|
||||||
|
Block block = worldIn.getBlockState(pos.down()).getBlock();
|
||||||
|
Block block1 = worldIn.getBlockState(pos.up()).getBlock();
|
||||||
|
Block block2 = worldIn.getBlockState(pos.north()).getBlock();
|
||||||
|
Block block3 = worldIn.getBlockState(pos.east()).getBlock();
|
||||||
|
Block block4 = worldIn.getBlockState(pos.south()).getBlock();
|
||||||
|
Block block5 = worldIn.getBlockState(pos.west()).getBlock();
|
||||||
|
return state
|
||||||
|
.withProperty(DOWN,
|
||||||
|
Boolean.valueOf(block == this || block == EaglerItems.getEaglerBlock("chorus_flower")
|
||||||
|
|| block == Blocks.end_stone))
|
||||||
|
.withProperty(UP,
|
||||||
|
Boolean.valueOf(block1 == this || block1 == EaglerItems.getEaglerBlock("chorus_flower")))
|
||||||
|
.withProperty(NORTH,
|
||||||
|
Boolean.valueOf(block2 == this || block2 == EaglerItems.getEaglerBlock("chorus_flower")))
|
||||||
|
.withProperty(EAST,
|
||||||
|
Boolean.valueOf(block3 == this || block3 == EaglerItems.getEaglerBlock("chorus_flower")))
|
||||||
|
.withProperty(SOUTH,
|
||||||
|
Boolean.valueOf(block4 == this || block4 == EaglerItems.getEaglerBlock("chorus_flower")))
|
||||||
|
.withProperty(WEST,
|
||||||
|
Boolean.valueOf(block5 == this || block5 == EaglerItems.getEaglerBlock("chorus_flower")));
|
||||||
|
}
|
||||||
|
|
||||||
|
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) {
|
||||||
|
state = state.getBlock().getActualState(state, source, pos);
|
||||||
|
float f = 0.1875F;
|
||||||
|
float f1 = ((Boolean) state.getValue(WEST)).booleanValue() ? 0.0F : 0.1875F;
|
||||||
|
float f2 = ((Boolean) state.getValue(DOWN)).booleanValue() ? 0.0F : 0.1875F;
|
||||||
|
float f3 = ((Boolean) state.getValue(NORTH)).booleanValue() ? 0.0F : 0.1875F;
|
||||||
|
float f4 = ((Boolean) state.getValue(EAST)).booleanValue() ? 1.0F : 0.8125F;
|
||||||
|
float f5 = ((Boolean) state.getValue(UP)).booleanValue() ? 1.0F : 0.8125F;
|
||||||
|
float f6 = ((Boolean) state.getValue(SOUTH)).booleanValue() ? 1.0F : 0.8125F;
|
||||||
|
return new AxisAlignedBB((double) f1, (double) f2, (double) f3, (double) f4, (double) f5, (double) f6);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AxisAlignedBB getCollisionBoundingBox(World world, BlockPos blockpos, IBlockState var3) {
|
||||||
|
return this.getBoundingBox(var3, world, blockpos);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addCollisionBoxesToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox,
|
||||||
|
List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn) {
|
||||||
|
state = state.getBlock().getActualState(state, worldIn, pos);
|
||||||
|
float f = 0.1875F;
|
||||||
|
float f1 = 0.8125F;
|
||||||
|
addCollisionBoxToList(pos, entityBox, collidingBoxes,
|
||||||
|
new AxisAlignedBB(0.1875D, 0.1875D, 0.1875D, 0.8125D, 0.8125D, 0.8125D));
|
||||||
|
|
||||||
|
if (((Boolean) state.getValue(WEST)).booleanValue()) {
|
||||||
|
addCollisionBoxToList(pos, entityBox, collidingBoxes,
|
||||||
|
new AxisAlignedBB(0.0D, 0.1875D, 0.1875D, 0.1875D, 0.8125D, 0.8125D));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((Boolean) state.getValue(EAST)).booleanValue()) {
|
||||||
|
addCollisionBoxToList(pos, entityBox, collidingBoxes,
|
||||||
|
new AxisAlignedBB(0.8125D, 0.1875D, 0.1875D, 1.0D, 0.8125D, 0.8125D));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((Boolean) state.getValue(UP)).booleanValue()) {
|
||||||
|
addCollisionBoxToList(pos, entityBox, collidingBoxes,
|
||||||
|
new AxisAlignedBB(0.1875D, 0.8125D, 0.1875D, 0.8125D, 1.0D, 0.8125D));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((Boolean) state.getValue(DOWN)).booleanValue()) {
|
||||||
|
addCollisionBoxToList(pos, entityBox, collidingBoxes,
|
||||||
|
new AxisAlignedBB(0.1875D, 0.0D, 0.1875D, 0.8125D, 0.1875D, 0.8125D));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((Boolean) state.getValue(NORTH)).booleanValue()) {
|
||||||
|
addCollisionBoxToList(pos, entityBox, collidingBoxes,
|
||||||
|
new AxisAlignedBB(0.1875D, 0.1875D, 0.0D, 0.8125D, 0.8125D, 0.1875D));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((Boolean) state.getValue(SOUTH)).booleanValue()) {
|
||||||
|
addCollisionBoxToList(pos, entityBox, collidingBoxes,
|
||||||
|
new AxisAlignedBB(0.1875D, 0.1875D, 0.8125D, 0.8125D, 0.8125D, 1.0D));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert the BlockState into the correct metadata value
|
||||||
|
*/
|
||||||
|
public int getMetaFromState(IBlockState state) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) {
|
||||||
|
if (!this.canSurviveAt(worldIn, pos)) {
|
||||||
|
worldIn.destroyBlock(pos, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the Item that this Block should drop when harvested.
|
||||||
|
*/
|
||||||
|
public Item getItemDropped(IBlockState state, Random rand, int fortune) {
|
||||||
|
return EaglerItems.getEaglerItem("chorus_fruit");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the quantity of items to drop on block destruction.
|
||||||
|
*/
|
||||||
|
public int quantityDropped(Random random) {
|
||||||
|
return random.nextInt(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFullCube() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used to determine ambient occlusion and culling when rebuilding chunks for
|
||||||
|
* render
|
||||||
|
*/
|
||||||
|
public boolean isOpaqueCube() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canPlaceBlockAt(World worldIn, BlockPos pos) {
|
||||||
|
return super.canPlaceBlockAt(worldIn, pos) ? this.canSurviveAt(worldIn, pos) : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onNeighborBlockChange(IBlockState p_189540_1_, World p_189540_2_, BlockPos p_189540_3_,
|
||||||
|
Block p_189540_4_) {
|
||||||
|
if (!this.canSurviveAt(p_189540_2_, p_189540_3_)) {
|
||||||
|
p_189540_2_.scheduleUpdate(p_189540_3_, this, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canSurviveAt(World wordIn, BlockPos pos) {
|
||||||
|
boolean flag = wordIn.isAirBlock(pos.up());
|
||||||
|
boolean flag1 = wordIn.isAirBlock(pos.down());
|
||||||
|
|
||||||
|
for (EnumFacing enumfacing : EnumFacing.Plane.HORIZONTAL) {
|
||||||
|
BlockPos blockpos = pos.offset(enumfacing);
|
||||||
|
Block block = wordIn.getBlockState(blockpos).getBlock();
|
||||||
|
|
||||||
|
if (block == this) {
|
||||||
|
if (!flag && !flag1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Block block1 = wordIn.getBlockState(blockpos.down()).getBlock();
|
||||||
|
|
||||||
|
if (block1 == this || block1 == Blocks.end_stone) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Block block2 = wordIn.getBlockState(pos.down()).getBlock();
|
||||||
|
return block2 == this || block2 == Blocks.end_stone;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EnumWorldBlockLayer getBlockLayer() {
|
||||||
|
return EnumWorldBlockLayer.CUTOUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean shouldSideBeRendered(IBlockAccess blockAccess, BlockPos pos,
|
||||||
|
EnumFacing side) {
|
||||||
|
Block block = blockAccess.getBlockState(pos.offset(side)).getBlock();
|
||||||
|
return block != this && block != EaglerItems.getEaglerBlock("chorus_flower")
|
||||||
|
&& (side != EnumFacing.DOWN || block != Blocks.end_stone);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected BlockState createBlockState() {
|
||||||
|
return new BlockState(this, new IProperty[] { NORTH, EAST, SOUTH, WEST, UP, DOWN });
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isPassable(IBlockAccess worldIn, BlockPos pos) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -137,6 +137,12 @@ public class AxisAlignedBB {
|
||||||
this.maxZ + z);
|
this.maxZ + z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AxisAlignedBB offset(BlockPos pos) {
|
||||||
|
return new AxisAlignedBB(this.minX + (double) pos.getX(), this.minY + (double) pos.getY(),
|
||||||
|
this.minZ + (double) pos.getZ(), this.maxX + (double) pos.getX(), this.maxY + (double) pos.getY(),
|
||||||
|
this.maxZ + (double) pos.getZ());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* +
|
* +
|
||||||
* if instance and the argument bounding boxes overlap in the Y
|
* if instance and the argument bounding boxes overlap in the Y
|
||||||
|
|
Loading…
Reference in New Issue