Sanal Blok Değişiklikleri

Sanal blok değişiklikleri, dünyadaki herhangi bir fiziksel bloğu değiştirmeden bir bloğun istemcide değiştirilmiş gibi görünmesini sağlamanıza izin verir.

Müşteriye bir sanal blok değişikliği göndermek, :javadoc: Viewer # sendBlockChange (int, int, int, BlockState) yöntemini çağırmak kadar basittir. Değiştirmek istediğiniz bloğun koordinatlarını ve yeni: javadoc: `BlockState`yi belirtmeniz gerekecektir. Aşağıda bir örnek gösterilmiştir:

import org.spongepowered.api.block.BlockTypes;
import org.spongepowered.api.effect.Viewer;

viewer.sendBlockChange(0, 65, 0, BlockTypes.COMMAND_BLOCK.getDefaultState());

Bu, sanki “0, 65, 0” koordinatlarındaki blok bir komut bloğuna dönüşmüş gibi görünür hale gelecektir. Tabii ki, bir blokun varsayılan durumu ile sınırlı değilsiniz. Herhangi bir `` BlockState``, `` sendBlockChange () `` yöntemi tarafından kabul edilir.

Koordinatlar için üç tam sayı belirlemenin yanı sıra bir “Vector3i” de belirtebilirsiniz. :Javadoc: Viewer # sendBlockChange (Vector3i, BlockState) yönteminin kullanımına bir örnek aşağıda gösterilmiştir:

import org.spongepowered.math.vector.Vector3i;

Vector3i vector = new Vector3i(0, 65, 0);
viewer.sendBlockChange(vector, BlockTypes.COMMAND_BLOCK.getDefaultState());

Tüyo

If you wish to send a virtual block to all clients, you can now use BlockChangeFlags#NOTIFY_CLIENTS

Değişiklikleri sıfırlama

İstemciye belirli bir konumda yaptığınız değişiklikleri sıfırlamak için: javadoc: Viewer # resetBlockChange (int, int, int) yöntemini çağırabilirsiniz. Örneğin, önceki örnekteki hasarımızı geri almak için, daha önce gelen koordinatları belirten `` resetBlockChange () `` yöntemini çağırabiliriz:

viewer.resetBlockChange(0, 65, 0);

Ayrıca, bu yöntemle üç tamsayı yerine bir “Vector3i” kullanabileceğinizi unutmayın.