38 "DispenserChooseItemToDispense",
40 loader.DispenserChooseItemToDispense(
this, ref num, ref slotValue, out
bool chosen);
47 for (
int i = 0; i < num2 &&
GetSlotCount(num) > 0; i++) {
60 base.Load(valuesDictionary, idToEntityMap);
66 m_componentBlockEntity.m_inventoryToGatherPickable =
this;
71 Vector3 position =
new Vector3(point.
X + 0.5f, point.
Y + 0.5f, point.
Z + 0.5f) + 0.6f * vector;
72 int removeSlotCount = 1;
78 "OnDispenserDispensePickable",
80 loader.OnDispenserDispensePickable(
this, ref pickable, ref removeSlotCount);
84 if (pickable !=
null) {
87 return removeSlotCount;
94 bool canDispensePickable =
true;
102 projectile.Creator =
this;
103 projectile.OwnerEntity =
Entity;
107 loader.OnDispenserShoot(
this, ref projectile, ref canDispensePickable, ref removeSlotCount);
111 if (canFireProjectile) {
112 if (projectile !=
null) {
115 return removeSlotCount;
119 if (canDispensePickable) {
static void Error(object message)
virtual bool CanBeFiredByDispenser(int value)
SubsystemAudio m_subsystemAudio
SubsystemPickables m_subsystemPickables
virtual int DispenseItem(Vector3 point, int face, int value, DispenserBlock.Mode mode)
ComponentBlockEntity m_componentBlockEntity
SubsystemProjectiles m_subsystemProjectiles
override void Load(ValuesDictionary valuesDictionary, IdToEntityMap idToEntityMap)
SubsystemTerrain m_subsystemTerrain
virtual int GetSlotCount(int slotIndex)
Project IInventory. Project
virtual int GetSlotValue(int slotIndex)
virtual int RemoveSlotItems(int slotIndex, int count)
实际移除的数量
static Mode GetMode(int data)
static int GetDirection(int data)
static int ExtractContents(int value)
static int ExtractData(int value)
ValuesDictionary ValuesDictionary
static void HookAction(string HookName, Func< ModLoader, bool > action)
执行Hook
static readonly Vector3 Zero
static Vector3 FaceToVector3(int face)