From f38485dd5229cdad16d7e734db4d3f2b8a80cb08 Mon Sep 17 00:00:00 2001 From: kismama <159849319+kismama@users.noreply.github.com> Date: Tue, 1 Oct 2024 02:21:09 +0100 Subject: [PATCH] torch partially created --- BlockGame.sln.DotSettings.user | 1 + src/util/BlockModel.cs | 25 +++++++++++++++++++++++++ src/util/Blocks.cs | 14 +++++++++++--- textures/blocks.png | Bin 14617 -> 14934 bytes 4 files changed, 37 insertions(+), 3 deletions(-) diff --git a/BlockGame.sln.DotSettings.user b/BlockGame.sln.DotSettings.user index 9adafb5..0b11aba 100644 --- a/BlockGame.sln.DotSettings.user +++ b/BlockGame.sln.DotSettings.user @@ -34,6 +34,7 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded diff --git a/src/util/BlockModel.cs b/src/util/BlockModel.cs index 2bc40fa..b13e63e 100644 --- a/src/util/BlockModel.cs +++ b/src/util/BlockModel.cs @@ -156,6 +156,31 @@ public static BlockModel makePartialCube(UVPair[] uvs) { return model; } + //makeTorch + public static BlockModel makeTorch(UVPair[] uvs) { + var model = new BlockModel(); + model.faces = new Face[5]; + // west + model.faces[0] = new(7/16f, 0.5f, 9/16f, 7/16f, 0, 9/16f, 7/16f, 0, 7/16f, 7/16f, 0.5f, 7/16f, uvs[0]+new UVPair(1/16f,0.5f), uvs[0] + new UVPair(3/16f, 1f), RawDirection.WEST, true, true); + // east + model.faces[1] = new(9/16f, 0.5f, 7/16f, 9/16f, 0, 7/16f, 9/16f, 0, 9/16f, 9/16f, 0.5f, 9/16f, uvs[0]+new UVPair(1/16f,0.5f), uvs[0] + new UVPair(3/16f, 1f), RawDirection.EAST, true, true); + // south + model.faces[2] = new(7/16f, 0.5f, 7/16f, 7/16f, 0, 7/16f, 9/16f, 0, 7/16f, 9/16f, 0.5f, 7/16f, uvs[0]+new UVPair(1/16f,0.5f), uvs[0] + new UVPair(3/16f, 1f), RawDirection.SOUTH, true, true); + // north + model.faces[3] = new(9/16f, 0.5f, 9/16f, 9/16f, 0, 9/16f, 7/16f, 0, 9/16f, 7/16f, 0.5f, 9/16f, uvs[0]+new UVPair(1/16f,0.5f), uvs[0] + new UVPair(3/16f, 1f), RawDirection.NORTH, true, true); + // up + model.faces[4] = new(7/16f, 0.5f, 9/16f, 7/16f, 0.5f, 7/16f, 9/16f, 0.5f, 7/16f, 9/16f, 0.5f, 9/16f, uvs[5], uvs[5]+new UVPair(2/16f,2/16f), RawDirection.UP, true, true); + // down + //model.faces[5] = new(8+offset1/2f, 0, 10/16f, 8+offset1/2f, 0, 10/16f, 8-offset1/2f, 0, 10/16f, 8-offset1/2f, 0, 10/16f, uvs[4], uvs[4]+new UVPair(offset1, offset1), RawDirection.DOWN, true, true); + + //model.faces[6] = new(0+offset1, 1, 1-offset1, 0+offset1, 1-offset, 1-offset1, 0+offset1, 1-offset, 0+offset1, 0+offset1, 1, 0+offset1, uvs[2] + new UVPair(offset1,0), uvs[2]+new UVPair(1-offset1, offset) , RawDirection.WEST, true, true); + //model.faces[7] = new(1-offset1, 1, 0+offset1, 1-offset1, 1-offset, 0+offset1, 1-offset1, 1-offset, 1-offset1, 1-offset1, 1, 1-offset1, uvs[2] + new UVPair(offset1,0), uvs[2]+new UVPair(1-offset1, offset), RawDirection.EAST, true, true); + //model.faces[8] = new(0+offset1, 1, 0+offset1, 0+offset1, 1-offset, 0+offset1, 1-offset1, 1-offset, 0+offset1, 1-offset1, 1, 0+offset1, uvs[2] + new UVPair(offset1,0), uvs[2]+new UVPair(1-offset1, offset), RawDirection.SOUTH, true, true); + //model.faces[9] = new(1-offset1, 1, 1-offset1, 1-offset1, 1-offset, 1-offset1, 0+offset1, 1-offset, 1-offset1, 0+offset1, 1, 1-offset1, uvs[2] + new UVPair(offset1,0), uvs[2]+new UVPair(1-offset1, offset), RawDirection.NORTH, true, true); + //model.faces[10] = new(0+offset1, 1, 1-offset1, 0+offset1, 1, 0+offset1, 1-offset1, 1, 0+offset1, 1-offset1, 1, 1-offset1, uvs[4] + new UVPair(offset1,offset1), uvs[4]+new UVPair(1-offset1, 1-offset1), RawDirection.UP, true, true); + return model; + } + public static BlockModel emptyBlock() { var model = new BlockModel(); model.faces = []; diff --git a/src/util/Blocks.cs b/src/util/Blocks.cs index 7521231..b00a483 100644 --- a/src/util/Blocks.cs +++ b/src/util/Blocks.cs @@ -19,7 +19,7 @@ public class Blocks { public static bool[] translucentCache = new bool[MAXBLOCKS]; public static bool[] inventoryBlacklist = new bool[MAXBLOCKS]; - public static readonly int maxBlock = 44; + public static readonly int maxBlock = 45; public static Block register(Block block) { return blocks[block.id] = block; @@ -64,11 +64,10 @@ public static bool isBlacklisted(int block) { public static Block HELLSTONE = register(new Block(7, "Hellstone", BlockModel.makeCube(Block.grassUVs(8, 0, 9, 0, 9, 0))).light(15)); public static Block GLASS = register(new Block(8, "Glass", BlockModel.makeCube(Block.cubeUVs(6, 0))).transparency()); - public static Block LANTERN = register(new Block(9, "Lantern", BlockModel.makePartialCube(Block.grassUVs(15, 1, 13, 1, 14, 1))).light(15).partialBlock()); + public static Block LANTERN = register(new Block(9, "Lantern", BlockModel.makePartialCube(Block.grassUVs(15, 1, 13, 1, 14, 1))).light(14).partialBlock()); public static Block TALL_GRASS = register(new Flower(43, "Tall Grass", BlockModel.makeGrass(Block.crossUVs(9,1)))).transparency().noCollision(); public static Block SHORT_GRASS = register(new Flower(44, "Short Grass", BlockModel.makeGrass(Block.crossUVs(8,1)))).transparency().shortGrassAABB().noCollision(); - public static Block YELLOW_FLOWER = register(new Flower(10, "Yellow Flower", BlockModel.makeGrass(Block.crossUVs(10,1))).transparency().flowerAABB().noCollision()); public static Block RED_FLOWER = register(new Flower(11, "Red Flower", BlockModel.makeGrass(Block.crossUVs(11,1))).transparency().flowerAABB().noCollision()); @@ -111,6 +110,8 @@ public static bool isBlacklisted(int block) { public static Block AMBER_ORE = register(new Block(41, "Amber Ore", BlockModel.makeCube(Block.cubeUVs(12, 0)))); public static Block VIOLET_ORE = register(new Block(42, "Violet Ore", BlockModel.makeCube(Block.cubeUVs(13, 0)))); + public static Block TORCH = register(new Block(45, "Torch", BlockModel.makeTorch(Block.grassUVs(4, 1,1, 1, 4,1))).partialBlock().torchAABB()); + public static bool isSolid(int block) { return block != 0 && get(block).type == BlockType.SOLID; } @@ -291,6 +292,13 @@ public Block shortGrassAABB() { return this; } + public Block torchAABB() { + var offset = 6 / 16f; + selectionAABB = new AABB(new Vector3D(0 + offset, 0, 0 + offset), new Vector3D(1 - offset, 1, 1 - offset)); + noCollision(); + return this; + } + public Block(ushort id, string name, BlockModel model) { this.id = id; this.name = name; diff --git a/textures/blocks.png b/textures/blocks.png index c56e832910a9cec8d2fe5299fb34c9859984df9d..7920189ada0f91610ab382b731c0ae60858e309c 100644 GIT binary patch literal 14934 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

1cbn64d_-TYZNp*uNmnSQ+C^5kPvS zxY$5_eD+7T9@T|~#T?)t}}>8y}j4$sB<$Yckjz3LI3LKYzdM%hUB_y)JP5TNyGuDtfH$4}Ohs z1a#gjQ!DV)CtIF%qP=MV7#S8;WF^_evtbI7&TVID&L9EWhaIU7*bMb8*1nwUti`H1@$7w1Cu(7GaRLe||cmM%yU3)~#tL2dJk3ki={M&9+ zXifz6b$rHI)FO>RBdy^s*{@C4iLQP8fm@2{*|i=I%X_tKvKCW=u`B&UCl7?HK>atS z%moo@yPQTfN9XPCz)%D56a&%rB%zF1D~S7uw^?+EtAnQ4jUak3=$zZBg@a?d1;;jI zCIkQ-S1^K&9g)a)&;A;DF0mgiwDTYy9v8d?_Y8N5g>a`Lm zaridm>^9Y_3O&)X_-!G`F4wqea|_a$DKsh7xN-UFj5*---71ha25RjP+4bP~Y+aWH zD|3oiM)q5ba&3;*1Z}+W}btiiL+2JA9rPg48B3g(Apip6>#wZso$J)hlUXF{&TK63! z&n_Dvi%mEu zC?N*Yw18u4F>!vO%q3_seQau#B2Y{Y{9JXOnlf?0lrM;~Qo0tibnV1Palx2a+ z$;@x11)RuPSs3(U%pV)_-RxvZHB?20U{>;st$9vpGrnX#{dtD6Q=V#_~p3&Q*FE}0vTK@G|v|B14KixAR!}8oSr|)!B4%4#sMTVdvjq)y)M8_fF zEWhccX~N}GrtbInxK!Z@E(;KN1|-l^rBQkScXp~Zg+CpXTazVP26`IJNRqKwtMJvO~u+= zqOk<3vpr-r1#-KVu#t!Kht!i2-KeB%ABmDk@No(Oz+tU1u?aQ~@TeA^fRx+EwK>U* z)1hiF-AP*u9pXOST#Jby_sj)t^xgIHnRX96+I*i$8h-slKWr7X^yes(@8Z?-b-RWq zLrAm~E_HIbh2CH0eUiiaB!_D`$ln{zDk13ed$d;Yv=|4x1 z#+1HL4K!J3CV`$l3IPWQlt2VC%~*(f`DhY~-xYtbv}WsTc%3}<*L~?^v0I0}`@rM( zzUS0#_?*d2$MxJ3G*~!0NM}OB5o;)}UWPT)Z1_#h(ka=BdRiKUEv~gslin7D+(4Iw z&CuCkl>A2VH0hquiasn{m{-t`Q8Y)*p$Shy_@vEY>{&x!!`Ga+ugb-^k!j<5WE_fX zgAm^!R63N=`JI?8aOQ8Gb_(>Vw5sjMIiw!x$fmF=_WkZ_DUkYfv!Airps+aoxR^TTbTcGu*?chVug$OuAq#hmxrrp! zQKO=&xk64bP9Kg#3ZvE0qOY)N=^q?IQyh>--yse}7O6E3q;?QOwuHnGcM0?K$Gf`~Z* z8Ei95ZpMx?Y};l)c#ez|jQNJx!k$m?QlC+L{u?ksh)eS=F$=?!Syq0whp(FxWtr2Y zzs*uW>NVh<;)2GWcViN#Yv*9gVVTQ1Zm%HF!{5C7u(`9A{zI#nxPzDbgpZq=f~>5I z+7zwg@OQhgd~m|u$(atMfTF%VVPJNRz|S0i$@915GNN{UTT%^dbv0Z$?>@KgOI_3t ztNnFl?tn+}*iF%*4FWd?tQXJcUS5RI=b1hCvR>N!1#fS^h#wdzTq#^IV(kDqspUUA zA1Lt`+5VOwb|_(Bp+EOe&wIRqb9&~sKHfB0f~hQ(3Koey51n;hyCDeoeAJWMb! zFHqMwB|&|0Wf!)!X2By>*0)ePo?$uj8Kch z*L|nb5})Dm|_c)Lzwjj7t;C*}S353QPjB-FZ1{XjXY?`A5Y`+SP_C4uNzCra8!+ia zI@s3{Op33%e_#Re5(VdiUs&E{NiQ4g;`f?+pa&xGM#!n5+vukzI^`Jo$efhy zF~lzEyv9VH^OgS_I8ZA$oS+b|Z;(bQTG7#QOsW5&1wJ)p5P7X`t45PlSv=7aq= zm9ngW9)7~9rt{;ei?p8=_J^w!)T^ag$h;2O1)g@^;ymxj5^Dc6OFpZIPZ?BnM>j9w zT{YF%MZZ<&>jqr!mju!h8j07^C%pujhlHuoOr&fzE-%VX0^3~s}0@Z>gPQ`%eZQ$iB`68228jsLH5oHQt?yr9=^CPsIOWUOf5icuGp zpE+vG*O=;jJe@;M-213uY{@~;*HQaJjbtTLT0_L?iQr<+jpRi12wVzGWDOh-%1d}3 zH*o7ySa>!Ia_HZ!d%zqYLXdq~6Ft%-eg8vV#g>Z|S%ifV(xq?Dc~h?-3Yyn z9&rZF%e?0hkWk_(-&%F3E$ckL&}6`H4~v9;Puf@$HP-Z^qq@Ge8%Z6-I+jp}c=$rpD@V>N&jddD1$~strX}2!6!(0RR(Xl4IC8swq`q(Y zn>Hy*l&7V%(5<7tLEY1H$LH2*&J>4BUNeCAl>FAjYN@1@0eO~!vu0i}v zB2a(FBeSiojbYN{U7NvV?TFAEu1U@Od8Jzut|o2(t2X6H=hVszRE1IXe|Mt`L+p*t z`C-D{{`K}xi2w5miumZe^g!mn8&?EarTll5BX6S0GgQTU=$RYf{~Dt!i(qsFuT{Nv z0;ga*7fwuFTqkXIlhUC7Er%N*iQp?k@HXHXF^d>r7!L>Y|MRc9-{lZY{cImDYI$UR zmtxMLw*8u(TX8hf$><`SbYW!#I~^IoG_+P8cP(j@h!R?mvUnYxm;=>>B8bWDbl8{zj_CjqL2f1bN`X3q z(Zkh`&y?$0NT9pBpq5VvWyUH#6K&eD3CeVEq_w;GkNh<^4~A0aPN40SqBnlNNZy?z zF25?86vc;#9HpkS7%zbCDw2$;^+4F&U&5Eg5Jmj7f|g&frmMXwciwM;SW5dqUri#K z_Ck4IG{pwX8!_!|bP*OBXy?yeugD~}X!lgy(1lDv8~|;_-1@_Te!3i0H1jT!8aIm0 zimL<8i{mBy_Z4}+#UY^G(qc1$%?!#k8`GBirSR|QYmiarg!;r-TSO>%{ol!0qT1hhF+MCMtOPXKpTsnNzcm$%bCGp`(50 zeQ7c&>X*L9p-;O{CvMV4uF?#_>;6s!&{O7}*@G@r!sz_<4tRQ8L5d=vG3ljP{R^wU zd5iIkJH0J*B9BE*`Y%YRcDo?r{J3CsN@nPy^nC0^x5X{Adt|7g;Wc$HpKtg6U8)|Z zoJ0SM68dq1mwcDHuTp4GD^F7TLEKNve)&T6q<8p&wxsml)ac=Bz_fmZhWqj|fZHf` z!Q!I1gp=Xc1>yb)E1wnz{mq<4IA>?+!TpDLMp!tc@Y8vR*qJ*UvCCkt=t6Da^=aGh zPi~vt-9J#%QO%7l22_R{MMH2({7iC{p(pn*#{;9@m2h=UX%X&C@%%m)0}O6UnZjJ@ z@wtI>>1l+55rDwStN{v|JY?=3ZaPMy?tOklVSn>;7S*-jMB@~MR`&d6c&+`Wnt(+- zM%Z>NjwZr6Up1cbTtE0~9bA6{BvcUt=LEke$lczK9Y5D7xcxp(+}$3l$qT`l1JB5U z>f7-*Y{D*FHZkVNc)S!I!I1+%ZX4Pk&}qFgsB$m+eOrhYqdOD$fqFG*=e%velX zUp`R{5SX9D6wPl`Zkr%e)Kkkc?9-Lis)s?xVX|{0dlF-!&$sm))E2<`9ee?>wru)eJ8SPOo_#XpCeiDpGlMdmbJ;gx={%~KNhJQL=MGQL?M z!VixG+XM%afDf$8s63{`+pS%WOhE?xEf;{eig;=31cl4eG|C`c0;N!rTCj(zAkM?>*TKvX*w>~ry zuExv{FPObrLHAU6WY0Loc3r*ay+~I%7~0GBk}FNpT|~=jO@08*o%WY)w@1%OF2f1F zA`{BDU_scI%J`|tAC0*18fUX@#7OepJh)Q;KagRh#WB`7S&x$MkgxeYocK&xLo<;;1jcj$Yv+h?gjlK=7h)^S_w_;1f z1ivhMTUiWPHCXu$pxXc9<_&i$;73GZ@peTZbMPOm);T8ct4c@$Q4#>yl!yc|Sv}NX ze~|hs)1{2cp0y~Oa0<6}FJ(^&r#?JZVSS@yBHTLUX`vsNxG$hz= z4a?33u;(``zr$MmP-aJpv|by(j6qU`J(z2*pze9_i2i+(clc$qLa)5<==C506?z+N z*XtWFKWtM2R!E|8@qA;4g(UwMc1N!k5LT20_=W@-46YzB_E+F{6yPyrOX32M3v5~=d7pGWyY&zA=x&~mVxSQQuO^= z&^;I2jp-8{qjid^jZxbwc2 zg@uP_V~_GxODYwwWVK0UtQ;jeo{2ypv+9- zbcyp-H6sHptst4nX8EPSALq{Px(SfA7kTvX0cQ^o(ocylDZmrUtF8jg^@PLMN5UQM zY!EcTg_=`=%)y~hyc<|;T%LIQ3EI&83N)l6p%4_JaG<&OccB}n2m@cVK}!kr0b@Ks zq{u$OW}i8OcQRQ^3O^*i>H8za^sILSr?bRS>Z+MUwRIg5V-ZRKm)2FQy*irpPIOE= z|A&4bu9&&9(t!a{J%ImEJ1BwG;R)$%0uTpayqB% z>L>tdwM^<=4+_g21MHrDKA$Bf@u<4S!nrfj$qJRv`er#T7E4foG}3Pe3H#e zr9ySo(za^(D77yg>^b53#EAgsxWC0k-)waz8YJl3-k)m#`$d!4i^pM|3#YzR=LUj7 z(vAgwx0#vyj10KLaeF%K*Z_4Z*rNnH032>tQtYk09^gluleHdqts=bu_{(fFPcf!o zD|%$^Ejr9_g7L0WT$z~!1!E}A#N}Q_2cGLYI!INLr4ZM}Uy9_qny5WC6?*d#?vF*; zC~!1-3HL|b;i{KdV21*GVS&vVKxpTom~~B zlI8(QmkIln`kVyWzU^k+Tok5^P-5Wxt~{RC!Y`q6ze#uk6^$SJwh|cBP_G&KPNzgI4{E|b9}E<>K-cv{!^Yf`7-G0 zPaq~1EH9DkZp_7z@6p;75?Yr3*e`+4x=_+QinL08=pE@BrxK9nNVf`%_sL&g#q!Rc zqYLc`9}`;7`ja5BGw6i9`7s*40QR^}D66jIkjVaPihaQ2cSHiKzMpmBqR#AWQvVT~ zz*u|YIn_%%Xe(Koyp+W=?+rP5NG&14$=Gwx9NWT7^EBXRK}CJLCu!}~lk*EZgX&pP z(C{98m*?G$^2_8e3S-rD4eIe^>01GnPYr8(jzs^uhN@P^j2L=Wy4$aI?1CkGr-~#C z3nV(3rZ&9g z5GNQ|ZhwoQ-cK$sqrovObYYB0W_a_&%)MU$_T)0BAq*tdSZ*dzGn(MRL&AOA;xTD`Mx?4(sh?;mEFZEs#I1-$Z8A3K} zdjamyS&+KTr@~fxL)9e_5+H&=qMM?j2V@)N&m)8O<3wzwT4ETfTcElU;?Hur@0sfs z2tB5NeI%FhB*o#YR>;m*Y4@+v@|>QSO-x{ktRXe$3koMj{8mY(^YjXFF=36VM7>Eq zF-D;{V|GCGuynG_8r4|%o0`12tjn12E8OWsAko~@vT_;d-|T))9S&*KB>Zj_iKOS) z;c&;9g z?`m?p1&7P$152atoz=<(>O?pz6025@Z-ZXMxQ} zsX9AH@iK4y!hW%Rly@*&>MWrPMje=$_#pu5-Yp02QG9FCU#EkduSfkxDagNEgUpVk z{kKJSZy+}e*k61_M(K}+O8@lBn0nmX9g&E2F@Ckkciqpb5J^}JOnB=fYCRxxaK{b! z8Ap&dnW$!Z{mZPB?9taqUmrca)z3;m7A6F1sQ|^mYV@~4$cz*4N=xQw~3Ak zp|qQM;l|y7=E4EgJOadbDE7f$!Fkg8Vgcb!&m5T=ELE78fv&`ewSe7fi$6{WMXka zNn+^1}Z`|M8D#g04Y19NW1vBm|-COch8%Y1TVY~c00k-r{Fayr~#nqj|l&wwbTVc>Q`oq z#3=`#@A=7`;g@FF0U!w>VXGjX=4|is;;wnl{15+D=@kJ8FK0=xcltFmvphX|zwOp2 zkU^5%8J$4Bx;Bm1ta~%=%Xqu^HuY9fx@K3XmD$In6MN61hCpL0py{t#LGFExNm5Q_ zTI`2Og0d~U%3n9AlrIPiZzw;gvgX5rR(vjsA$YB5?-|}DlQA2=w8RYuS^Hiu9@MVe zo0eV(w@tN87wgB+gKiCGh2v^qO^oF;u!aWuHLbRL{*=zhA?P-QvR}>1Orw|N@%>`$-Gr)) z8>>^zB~ps7>+_xjX198~^aX6U>`lE1Y)X}3Tsd8wObuXYP57HY0P-8|w^>#+H zsk_{(wY!xD8-Op?;PluQ0?fiArN-tymD`ZD*Wzn41t84y=-bXKhH~1^Pj(%VA2ehs zQwN-0F;wss*54lemA)@zRePs9F&?kY^W|K@Mb)=>6jsS2+X$GCg4^*i?ih{M&n9BA z49<)(iU6KSCW6JZ>eE#BUU{V*V7{BA4x>gcU&?Q@uGEw%vpF_kJcOJU|L(6Bv0{W8 z1+or21DS1yK~Ho%zQiZ15^JO|K~EZ%?ZxPTRelxI1wv?3x4RYCK%bX$`i4{{kwH8Z>JbR}() zoMIQT3%&aGxx>175D8;HCQsR88#k_KlZUpwfRc*R3x96i!K4S>>0Ms>_n*rT{smUd zxi@-rpHcPwr(T`# z{Oh*QCxEXp9P(o2jk6|qlqnhWY*ZG1gLb9dftbGMWBcT-@}gO+`;UFjx#xo_#M)PZ zlMD5FSqv16#mnD~7_Erw{vZbIcKmC|n{+)`Whvw7c6()p8+VP1OoB7g)H$umz1z-0 zSs1`apTHL@K1d3`I^m3)!``tEU` zM(&5YpkBPi-{q#wHat15Ffok}4IE7b-I%?^$tQAUE}n)|yDmCa^T9nzdI>4E&=rf- zOvX&9!lfXP*^a@NDb$2!pX##okz5g5Tp2A!zOs}$5ruNW=G@nTM@n0P$2jqfk2Kbh zgE&*kd&K#%gzB6kN2!zl(@yT-vk@i;YJmOn)3k5&KYf+yANy~n{g)0k1ZCU481n>- z&dc=%6jqk!M5or0Qt%^TCu{{<*NaeV*)